实体位于多个罐子中时的未知实体异常

时间:2011-02-15 10:29:07

标签: hibernate jpa-2.0

我在运行maven测试时遇到此异常。

  

错误 - 申请不可能   已部署:classpath.ear   org.apache.openejb.OpenEJBException:   创建应用失败:   classpath.ear:   org.hibernate.AnnotationException:   @OneToOne或@ManyToOne on   net.atos.wlp.cns.core.record.ClearingRecord.clearingBatch   引用未知实体:   net.atos.wlp.cns.core.batch.ClearingBatch:   @OneToOne或@ManyToOne on   net.atos.wlp.cns.core.record.ClearingRecord.clearingBatch   引用未知实体:   net.atos.wlp.cns.core.batch.ClearingBatch                   在org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:658)

我试过& persistence.xml文件中的选项仍然存在错误。

如果有人遇到类似的问题,请帮帮我。

2 个答案:

答案 0 :(得分:4)

我遇到了类似的问题 - 将我的实体分布在多个jar文件中。我也用过maven ......

起初我能够通过将jar文件解压缩到类来运行它。最后,解决方案是在persitence.xml中指定依赖项的jar文件:

    ...
    <persistence-unit ...
    <provider>...</provider>
    <jar-file>WEB-INF/lib/my-jar-file-0.0.1-SNAPSHOT.jar</jar-file>
    <properties>
    ...

答案 1 :(得分:0)

如果您有两个类,在同一个类加载器中具有相同的名称和相同的包,则结果是不一致的行为(在某种意义上,根据您选择的JVM / Application Server的组合,它可能表现不同) 。您可能希望对JVM / Application Server的预期行为进行一些研究,但理想的解决方案是在两个jar中具有相同的类(在同一个包中)。如果你这样做,我会说你有一个必须解决的架构问题; - )