我在运行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文件中的选项仍然存在错误。
如果有人遇到类似的问题,请帮帮我。
答案 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中具有相同的类(在同一个包中)。如果你有这样做,我会说你有一个必须解决的架构问题; - )