Heim > Java > javaLernprogramm > Warum verursacht ein Upgrade auf Hibernate 4.3.0.Final einen NoSuchMethodError in javax.persistence.Table.indexes()?

Warum verursacht ein Upgrade auf Hibernate 4.3.0.Final einen NoSuchMethodError in javax.persistence.Table.indexes()?

Linda Hamilton
Freigeben: 2024-11-28 17:20:11
Original
713 Leute haben es durchsucht

Why Does Upgrading to Hibernate 4.3.0.Final Cause a NoSuchMethodError in javax.persistence.Table.indexes()?

NoSuchMethodError in javax.persistence.Table.indexes()

In Play Framework-Anwendungen, die Hibernate verwenden, wird ein Upgrade auf Hibernate 4.3.0.Final durchgeführt kann eine NoSuchMethodError-Ausnahme verursachen javax.persistence.Table.indexes(). Hier erfahren Sie, warum dies auftritt und wie Sie es beheben können:

Ursache:

Das Problem entsteht aufgrund eines Konflikts zwischen verschiedenen Versionen der JPA-Spezifikationen, die in den Klassenpfad geladen werden. Play basiert auf einer bestimmten Version der JPA-Spezifikation, während Hibernate 4.3.0.Final eine neuere Version erfordert. Wenn beide Versionen vorhanden sind, tritt ein Konflikt auf, der zum Fehler führt.

Lösung:

Um diesen Fehler zu beheben, müssen Sie die ältere JPA-Spezifikation von Play's ausschließen classpath beim Hinzufügen der neueren Version, die für Hibernate 4.3.0.Final erforderlich ist.

Für Play 2.2.x, ändern Sie Ihre build.sbt-Datei wie folgt:

libraryDependencies ++= Seq(
  javaJdbc,
  javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"),
  "org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final"
)
Nach dem Login kopieren

Frühere Versionen von Play finden Sie in der spezifischen Dokumentation für Sie Version.

Durch den Ausschluss der älteren JPA-Spezifikation stellen Sie sicher, dass nur die neuere Version von Hibernate benötigt wird 4.3.0.Final wird verwendet, um den Konflikt und die Ausnahme NoSuchMethodError zu lösen.

Das obige ist der detaillierte Inhalt vonWarum verursacht ein Upgrade auf Hibernate 4.3.0.Final einen NoSuchMethodError in javax.persistence.Table.indexes()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage