Hibernate 4.3.0.Final- und Federdaten JPA 1.4.3.RELEASE

8

Ich habe versucht, Spring Data zum ersten Mal einzurichten und zu verwenden. Natürlich möchten Sie die neueste Version (Spring Data JPA 1.4.3.RELEASE & amp; Hibernate 4.3.0.Final) verwenden. Nach der Konfiguration gemäß den Beispielen online, hat die Anwendung eine Ausnahme ausgelöst.

%Vor%

Dies war die Fehler / Ausnahme:

%Vor%

Ich konnte es einfach nicht schaffen, dass diese Konfiguration funktioniert. Die einzige Problemumgehung, die ich gefunden habe, war, Hibernate auf Version 4.2.8.Final

zurückzusetzen     
user3201424 16.01.2014, 08:50
quelle

7 Antworten

19

Ihr Klassenpfad enthält offenbar sowohl die JPA 2.0- als auch die JPA 2.1-JAR, wobei die erstere zuerst gefunden wird und somit Hiberate fehlschlägt. Aus den aufgelisteten Abhängigkeitsdeklarationen ist nicht klar, warum Spring Data JPA 1.4.3 sie definitiv nicht aufruft.

Ich würde also empfehlen, mvn dependency:tree auszuprobieren und nach der JPA 2.0 JAR zu suchen, die tatsächlich transitiv davon abhängt (vielleicht hast du es sogar lokal deklariert). Falls Sie immer noch dabei sind, können Sie die Ausgabe des Maven-Befehls zu Ihrer Frage hinzufügen.

    
Oliver Gierke 16.01.2014 09:14
quelle
2

Wenn Sie den Jboss-Webserver verwenden, möchten Sie den Hibernate-jpa-2.0-API von pom.xml ausschließen, zum Beispiel:

%Vor%

Fügen Sie hibernate-jpa-2.1-api dependency zu Ihrer pom.xml hinzu, zum Beispiel:

%Vor%

Abschließender Hinweis: Lesen Sie den Stacktrace, Ihre Abfrage verursacht den Fehler nicht, er wird verursacht, wenn EntityManagerFactory erstellt wird, da einige Ihrer Entitäten diese Eigenschaft in einer Annotation @Table verwenden. Löschen Sie entweder die Verwendung der Eigenschaft oder verschieben Sie Ihre Bibliotheken nach JPA 2.1.

Außerdem müssen Sie das jpa-Subsystem von JBoss ausschließen, und Sie möchten Folgendes tun:

  1. Erstellen Sie /WEB-INF/jboss-deployment-structure.xml
  2. Schließen Sie das jpa Subsystem aus: hier ist ein vollständiges Beispiel

    %Vor%

-Genießen Sie!

    
Ahmad AlMughrabi 10.04.2015 22:05
quelle
1
%Vor%     
Slim BH 03.02.2014 19:35
quelle
0

Wenn Sie Eclipse verwenden, können Sie die Datei pom.xml in Eclipse öffnen und zur Registerkarte Abhängigkeitshierarchie navigieren, um zu überprüfen, welches jar als transitive Abhängigkeit ausgewählt wurde und welches von Ihnen konfiguriert wurde. Sie müssten diejenige auswählen, die die transitive Abhängigkeit ist, und die aktuell angegebene Abhängigkeit entfernen / OR / Sie müssten die transitive Abhängigkeit ausschließen.

    
Hrishikesh 16.01.2014 10:49
quelle
0

Ich habe

benutzt

compile 'org.hibernate.javax.persistence: hibernate-jpa-2.1-api: 1.0.0.Final'

um es zu verändern.

    
Jewel 09.02.2015 07:58
quelle
0

Wir hatten das gleiche Problem. Wir haben eine Web-App mit Spring und Hibernate 4.3.10.FINAL mit JBoss 7.1.3. Der Hibernate kommt mit JPA 2.1 und der JBoss mit JPA 2.0. Die beiden waren beim Bereitstellen der App in Konflikt. Sie haben viele Lösungen. Wie von anderen gesagt, können Sie die gewünschte Version von hibernate-jpa jar in das jboss-Modul modules (jboss / modules / javax / persistence / api / main) stellen und die modules.xml mit der guten Version aktualisieren. Eine andere Lösung (diejenige, die wir gewählt haben) besteht darin, zu verhindern, dass die Jboss JPA implizit von JBoss geladen wird, wenn sie bereitgestellt wird. In diesem Fall müssen Sie in Ihrem WEB-INF-Ordner eine Datei namens jboss-deployment-structure.xml erstellen. Fügen Sie die folgenden Ausschlüsse hinzu:

%Vor%     
Alee 14.01.2016 11:38
quelle
0

Nachdem dieselben Probleme mit JBoss EAP 6.4, JPA 2.1, Spring Boot 1.4.1, Spring Data 1.10.3, Hibernate 5.0.11 aufgetreten sind, ist dies die Lösung, die für mich funktioniert hat:

/WEB-INF/jboss-deployment-structure.xml

%Vor%

Lob an Ahmads Antwort, nur Ausschluss für org.jboss.logging hinzugefügt

    
Antanas Sinica 08.11.2016 10:55
quelle