Hibernate 3.5.x: NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval
我正在尝试升级到Hibernate 3.5.3-FINAL。
运行单元测试时,我现在收到以下异常:
java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1837)
我的类路径包含以下 JAR:
从休眠区:
antlr-2.7.6.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
javassist-3.9.0.GA.jar
jta-1.1.jar
slf4j-api-1.5.8.jar
cglib-2.2.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
hibernate3.jar
其他罐子:
blazeds-common-3.2.0.3978.jar
blazeds-core-3.2.0.3978.jar
blazeds-opt-3.2.0.3978.jar
blazeds-proxy-3.2.0.3978.jar
blazeds-remoting-3.2.0.3978.jar
commons-lang-2.3.jar
dbunit-2.4.7.jar
ejb3-persistence.jar // Note, I've tried excluding this, but I get different errors
guava-r05.jar
hsqldb-1.8.0.7.jar
junit-4.1.jar
lambdaj-2.0-with-dependencies.jar
log4j-1.2.14.jar
mockito-all-1.8.0.jar
persistence-api-1.0.jar
spring-security-core-2.0.0.jar
spring.jar
sqljdbc.jar
我已经对此进行了研究,并找到了声明我的Web服务器必须符合JPA2标准的答案:
不幸的是,如果您的应用程序服务器不符合JPA 2标准,则很可能运气不好。
此项目是一个库,而不是 Web 服务器项目。(虽然它最终被部署到Web服务器,但我只是在这里运行单元测试)
我错过了什么?
<indulgent_rant>
顺便说一句,每次我升级Hibernate时,我发现自己都会花费数小时来研究相互冲突的jars,这非常令人沮丧。一定有更简单的方法吗?MethodNotFoundException
ClassNotFoundException
我可以肯定的是,随着宣布他们将模块合并回一个核心项目,这些冲突会消失吗?
</indulgent_rant>