NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index; Hibernate
Hibernate 4.3.0.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 예외가 발생합니다.
솔루션
이 문제를 해결하려면 다음에서 Hibernate 2.0 API 종속성을 제외하십시오. Hibernate 4.3.0.Final을 포함하는 동안 build.sbt 파일. build.sbt 파일의 업데이트된 버전은 다음과 같습니다.
libraryDependencies ++= Seq( javaJdbc, javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"), "org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final" )
참고:
위 내용은 Hibernate 4.3.0.Final이 포함된 내 Play Framework 앱에서 NoSuchMethodError: javax.persistence.Table.indexes()가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!