2008-11-06 162 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無效)來驗證此問題。