Rumah >Java >javaTutorial >Bagaimana untuk Menyelesaikan NoSuchMethodError dalam javax.persistence.Table.indexes() Selepas Menaik taraf Hibernate dalam Aplikasi Rangka Kerja Play?

Bagaimana untuk Menyelesaikan NoSuchMethodError dalam javax.persistence.Table.indexes() Selepas Menaik taraf Hibernate dalam Aplikasi Rangka Kerja Play?

Susan Sarandon
Susan Sarandonasal
2024-11-24 06:05:14375semak imbas

How to Resolve a NoSuchMethodError in javax.persistence.Table.indexes() After Upgrading Hibernate in a Play Framework Application?

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

Dalam aplikasi Rangka Kerja Play, naik taraf daripada Hibernate 4.2.5.Akhir hingga 4.3.0.Akhir boleh membawa kepada a Pengecualian "NoSuchMethodError" berkenaan javax.persistence.Table.indexes().

Punca:

Isu ini berpunca daripada konflik pergantungan antara artifak play-java-jpa dan artifak hibernate-entitymanager. Artifak play-java-jpa bergantung pada versi API kegigihan (versi 2.0) yang berbeza daripada artifak hibernate-entitymanager (versi 2.1). Apabila kedua-dua artifak hadir dalam laluan kelas, definisi API yang lebih baharu diutamakan, menyebabkan kaedah javax.persistence.Table.indexes() tidak ditentukan.

Penyelesaian:

Untuk menyelesaikan isu ini, edit fail build.sbt anda dan kecualikan kebergantungan hibernate-jpa-2.0-api daripada artifak play-java-jpa. Konfigurasi pergantungan yang dikemas kini sepatutnya kelihatan seperti ini:

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

Konfigurasi ini memastikan bahawa laluan kelas hanya mengandungi definisi API daripada versi yang lebih baharu (2.1) dan mengelakkan konflik definisi kaedah.

Untuk Play 2.2.x:

Konfigurasi fail build.sbt yang disediakan di atas direka untuk Play 2.2.x. Untuk versi Play yang lebih awal, mungkin terdapat perbezaan dalam konfigurasi fail binaan. Rujuk dokumentasi Play untuk mendapatkan maklumat lanjut tentang mengkonfigurasi kebergantungan dalam versi Play yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan NoSuchMethodError dalam javax.persistence.Table.indexes() Selepas Menaik taraf Hibernate dalam Aplikasi Rangka Kerja Play?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn