NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
Masalah:
Setelah menaik taraf daripada Hibernate 4.2.5 hingga 4.3.0, pengecualian telah dibangkitkan:
NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
Isu ini berterusan dengan versi Hibernate 4.2.6-4.2.8, tetapi tidak dengan 4.2.5.
Penyelesaian:
Isu ini timbul kerana konflik pergantungan antara Play Java JPA dan Hibernate 4.3. Main Java JPA bergantung pada spesifikasi JPA 2.0, manakala Hibernate 4.3 menggunakan spesifikasi JPA 2.1 yang lebih baharu.
Betulkan:
Ubah suai fail build.sbt dengan menambah yang berikut pergantungan:
libraryDependencies ++= Seq( javaJdbc, javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"), "org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final" )
Langkah ini mengecualikan JPA 2.0 dan memastikan bahawa hanya JPA 2.1 digunakan. Penyelesaian ini boleh digunakan untuk versi Play 2.2.x.
Nota:
Isu ini mungkin memerlukan pengubahsuaian yang berbeza untuk versi Play yang terdahulu.
Atas ialah kandungan terperinci Mengapa Menaik taraf Hibernate daripada 4.2.5 kepada 4.3.0 Menyebabkan NoSuchMethodError untuk javax.persistence.Table.indexes()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!