NoSuchMethodError:javax.persistence.Table.indexes()[Ljavax/persistence/Index;在Hibernate 中
在Hibernate 中
在Hibernate. .Final 中使用Play Framework應用程式時,使用者可能會在 javax.persistence.Table.indexes() 中遇到 NoSuchMethodError 異常。此問題特定於 Hibernate 4.3.0.Final,在 4.2.5.Final 等早期版本中不會出現。
根本原因
發生錯誤的原因應用程式類別路徑中不同版本的 Hibernate 規範之間的衝突。 play-java-jpa 工件依賴 Hibernate 2.0 API (hibernate-jpa-2.0-api),而 Hibernate 4.3.0.Final 引入了 Hibernate 2.1 API。因此,兩個 API 版本在類別路徑中共存,導致 NoSuchMethodError 異常。
解決方案
libraryDependencies ++= Seq( javaJdbc, javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"), "org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final" )
要解決此問題,請從build.sbt 文件,同時包含 Hibernate 4.3.0.Final。以下是 build.sbt 檔案的更新版本:
以上是為什麼我的 Play Framework 應用程式使用 Hibernate 4.3.0.Final 拋出 NoSuchMethodError:javax.persistence.Table.indexes()?的詳細內容。更多資訊請關注PHP中文網其他相關文章!