Maison >Java >javaDidacticiel >Pourquoi la mise à niveau de Hibernate de 4.2.5 vers 4.3.0 provoque-t-elle une NoSuchMethodError pour javax.persistence.Table.indexes() ?

Pourquoi la mise à niveau de Hibernate de 4.2.5 vers 4.3.0 provoque-t-elle une NoSuchMethodError pour javax.persistence.Table.indexes() ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-26 13:12:121047parcourir

Why Does Upgrading Hibernate from 4.2.5 to 4.3.0 Cause a NoSuchMethodError for javax.persistence.Table.indexes()?

NoSuchMethodError : javax.persistence.Table.indexes()[Ljavax/persistence/Index;

Problème :

Lors de la mise à niveau d'Hibernate 4.2.5 vers 4.3.0, une exception a été levée :

NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

Ce problème persiste avec les versions 4.2.6 à 4.2.8 d'Hibernate, mais pas avec la 4.2.5.

Solution :

Le problème survient en raison d'un conflit de dépendances entre Play Java JPA et Hibernate 4.3. Play Java JPA dépend de la spécification JPA 2.0, tandis qu'Hibernate 4.3 utilise la nouvelle spécification JPA 2.1.

Correction :

Modifiez le fichier build.sbt en ajoutant ce qui suit dependency :

libraryDependencies ++= Seq(
javaJdbc,
javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"),
"org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final"
)

Cette étape exclut la dépendance JPA 2.0 et garantit que seul JPA 2.1 est utilisé. Cette solution s'applique aux versions Play 2.2.x.

Remarque :

Le problème peut nécessiter des modifications différentes pour les versions antérieures de Play.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn