NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
问题:
从 Hibernate 升级后4.2.5 到 4.3.0,出现了异常:
NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
此问题在 Hibernate 版本 4.2.6-4.2.8 中仍然存在,但在 4.2.5 中不存在。
解决方案:
由于依赖冲突而出现此问题Play Java JPA 和 Hibernate 4.3 之间。 Play Java JPA 依赖于 JPA 2.0 规范,而 Hibernate 4.3 使用较新的 JPA 2.1 规范。
修复:
修改 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。此解决方案适用于 Play 2.2.x 版本。
注意:
对于早期版本的 Play,此问题可能需要进行不同的修改。
以上是为什么将 Hibernate 从 4.2.5 升级到 4.3.0 会导致 javax.persistence.Table.indexes() 出现 NoSuchMethodError?的详细内容。更多信息请关注PHP中文网其他相关文章!