javax.persistence.Table.indexes()[Ljavax/persistence/Index
問題:
從Hibernate 升級時Play Framework 應用程式中的4.2.5.Final 到4.3.0.Final 出現異常:
java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
答案:
問題的出現是由於應用程式類別路徑中不同版本的Java Persistence API (JPA) 規範依賴項之間的衝突。具體來說,Play Framework JPA 外掛程式包含對 JPA 2.0 規範的依賴項,而 Hibernate 4.3.0.Final 需要較新的 JPA 2.1 規格。
要解決此問題,請從構建中排除JPA 2.0 規範依賴項.sbt 檔案並將其替換為JPA 2.1 規範的以下依賴項:
"org.hibernate.javax.persistence" % "hibernate-jpa-2.1-api" % "1.0.0.Final"
For玩2.2. x,如下編輯build.sbt 檔案:
libraryDependencies ++= Seq( javaJdbc, javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"), "org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final" )
透過排除JPA 2.0 依賴項並包含 JPA 2.1 依賴項,您可以確保使用正確版本的 JPA 規範,從而解決NoSuchMethodError 異常。
以上是為什麼將 Hibernate 從 4.2.5.Final 升級到 4.3.0.Final 會導致「javax.persistence.Table.indexes()」中出現「NoSuchMethodError」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!