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中文网其他相关文章!