Я пытаюсь перейти на Hibernate 3.5.3-FINAL.
При выполнении моих модульных тестов я получаю следующее исключение:
java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1837)
My classpath содержит следующие 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
Я исследовал это, и я найду ответы, которые утверждают, что мой веб-сервер должен быть совместимым с JPA2:
К сожалению, если ваш сервер приложений а не JPA 2, вы, скорее всего, не повезло
Этот проект представляет собой библиотеку, а не проект веб-сервера. (Хотя он в конечном итоге развернут на веб-сервере, я просто запускаю тесты модулей здесь)
Что мне не хватает?
<indulgent_rant>
Как побочный эффект, очень сложно, что каждый раз, когда я обновляю Hibernate, я нахожу, что трачу часы на поиск противоречивых банок для MethodNotFoundException
или ClassNotFoundException
. Должен быть более простой способ?
Я уверен, что с объявлением они объединили модули обратно в один основной проект, чтобы эти конфликты исчезли?
</indulgent_rant>