2008-11-06 168 views
0

的应用程序已经数月的工作以及已经停止拿起JPA @Entity批注一直是它的一部分几个月。随着我的集成测试运行,我看到几十个“org.hibernate.MappingException: Unknown entity: com.whatever.OrderSystem”类型的错误。休眠/ JPA批注 - 未知实体

我不清楚这里出了什么问题。

我没有hibernate.cfg.xml文件,因为我使用Hibernate的实体管理器。由于我只使用注释,因此我的实体没有.hbm.xml文件。我的persistence.xml文件很小,并且按照它的设想存在于META-INF中。

我显然失去了一些东西,但不能把我的手指上。

我使用的Hibernate注解3.2.1,休眠-的EntityManager 3.2.1,持久性API 1.0和3.2.1冬眠。 hibernate-commons-annotations也是该项目的POM的一部分,但我不知道这是否相关。

有一个web.xml条目已经消失,或者已经不小心被删除的Spring配置项?

回答

2

我似乎记得我曾经有过类似的问题。

它是一个长镜头,但如果你不是已经这样做了,你有没有明确指定要使用的供应商?

<persistence ...> 
    <persistence-unit ...> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> <---- explicit setting 
     .... 
    </persistence-unit> 
</persistence> 

否则,我不知道?

+0

这解决了它。谢谢。我仍然不明白为什么它自发地停止工作,但我很高兴有一个解决方案。 – 2008-11-06 20:38:04

5

验证你的实体CLASSE您导入javax.persistent.Entity而不是org.hibernate.annotations.Entity

0

这是发生了一个特定的类(几班)或所有的实体类。 persistence.xml文件包含需要扫描@Entity映射的类和/或jar文件的列表。如果它工作的更早,可以使用正常工作的persistence.xml版本进行快速比较。另一个问题可能是它正在拾取一个不同的persistence.xml文件 - 您可以通过在persistence.xml中引入错误(例如,使xml无效)来验证此问题。