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

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

Barbara Streisand
Freigeben: 2024-11-24 01:54:12
Original
1025 Leute haben es durchsucht

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

NoSuchMethodError in javax.persistence.Table.indexes()[Ljavax/persistence/Index

Frage:

Beim Upgrade vom Ruhezustand 4.2.5.Final bis 4.3.0.Final in einer Play Framework-Anwendung tritt eine Ausnahme auf:

java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
Nach dem Login kopieren

Antwort:

Das Problem entsteht aufgrund von a Konflikt zwischen verschiedenen Versionen der Java Persistence API (JPA)-Spezifikationsabhängigkeiten im Klassenpfad der Anwendung. Insbesondere enthält das Play Framework JPA-Plugin eine Abhängigkeit von der JPA 2.0-Spezifikation, während Hibernate 4.3.0.Final die neuere JPA 2.1-Spezifikation erfordert.

Um dieses Problem zu beheben, schließen Sie die Abhängigkeit von der JPA 2.0-Spezifikation aus dem Build aus .sbt-Datei und ersetzen Sie sie durch die folgende Abhängigkeit von der JPA 2.1-Spezifikation:

"org.hibernate.javax.persistence" % "hibernate-jpa-2.1-api" % "1.0.0.Final"
Nach dem Login kopieren

Für Spielen Sie 2.2.x und bearbeiten Sie die Datei build.sbt 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

Durch das Ausschließen der JPA 2.0-Abhängigkeit und das Einschließen der JPA 2.1-Abhängigkeit stellen Sie sicher, dass die richtige Version der JPA-Spezifikation verwendet und aufgelöst wird die NoSuchMethodError-Ausnahme.

Das obige ist der detaillierte Inhalt vonWarum verursacht ein Upgrade von Hibernate von 4.2.5.Final auf 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