0

几个月来一直运行良好的应用程序已经停止使用几个月来@Entity一直是其中一部分的 JPA 注释。当我的集成测试运行时,我看到了几十个“ org.hibernate.MappingException: Unknown entity: com.whatever.OrderSystem”类型的错误。

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

我没有hibernate.cfg.xml文件,因为我使用的是 Hibernate Entity Manager。由于我只使用注释,因此我的实体没有 .hbm.xml 文件。我的persistence.xml文件很小,并且META-INF按照应有的方式存在。

我显然遗漏了一些东西,但不能指望它。

我正在使用 hibernate-annotations 3.2.1、hibernate-entitymanager 3.2.1、persistence-api 1.0 和 hibernate 3.2.1。hibernate-commons-annotations 也是项目 POM 的一部分,但我不知道这是否相关。

是否存在消失的 web.xml 条目,或者意外删除的 Spring 配置条目?

4

3 回答 3

5

在您的实体类中验证您导入 javax.persistent.Entity 而不是 org.hibernate.annotations.Entity

于 2008-11-13T21:15:29.453 回答
2

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

这是一个很长的镜头,但如果您还没有这样做,您是否明确指定了您正在使用的提供程序?

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

否则,我不确定?

于 2008-11-06T20:32:02.480 回答
0

这是针对一个特定类(少数类)还是所有实体类发生的。persistence.xml 文件有一个类和/或 jar 文件列表,需要扫描这些文件以查找 @Entity 映射。如果它在早期工作,您可以对正常工作的 persistence.xml 版本进行快速比较。另一个问题可能是它获取了不同的persistence.xml 文件——您可以通过在persistence.xml 中引入错误(例如,使xml 无效)来验证这一点。

于 2008-12-30T17:12:04.600 回答