Ошибка WebSphere 7 & javax/persistence/OneToMany.orphanRemoval ()

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 -> Устранение неполадок -> Средство просмотра загрузчика классов, убедитесь, что ваша библиотека загружена.

JPA2-On-WAS7

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

Related