WebSphere 7 & javax / persistence / OneToMany.orphanRemoval () ошибка
проблема
В разработке Hibernate содержит класс модели с аннотацией JPA @OneToMany:
@OneToMany(
cascade=CascadeType.ALL,
fetch = FetchType.LAZY, mappedBy = "user")
public Set getDebits() {
return this.debits;
}
При развертывании веб-приложения в WebSphere 7 появляется следующее сообщение об ошибке:
Caused by: java.lang.NoSuchMethodError: javax/persistence/OneToMany.orphanRemoval()Z
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1912)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:707)
... 118 more
P.S hibernate-jpa-2.0-api-1.0.0.Final.jar is included in the library path.
Решение
OneToMany.orphanRemoval указан в JPA 2.0, и похоже, что WebSphere 7 содержит старую библиотеку JPA, которая загружается до вашегоhibernate-jpa-2.0-api-1.0.0.Final.jar.
Чтобы исправить это, поместите вашу библиотеку JPA 2.0 (hibernate-jpa-2.0-api-1.0.0.Final.jar) в папку загрузчика классов с наивысшим приоритетом WebSphere, которая находится в папкеWAS7_FOLDER\AppServer\java\jre\lib\ext. Перезапустите экземпляр сервера WebSphere, чтобы изменения вступили в силу.
Теперь откройте веб-консоль WebSphere -> Устранение неполадок -> Средство просмотра загрузчика классов, убедитесь, что ваша библиотека загружена.

Теперь WebSphere 7 всегда будет загружать вашу библиотеку Hibernate JPA 2.0.