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
Lepaskan: 2024-11-24 06:05:14
asal
357 orang telah melayarinya

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"
)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan