Maison > Java > javaDidacticiel > le corps du texte

Comment résoudre une NoSuchMethodError dans javax.persistence.Table.indexes() après la mise à niveau de Hibernate dans une application Play Framework ?

Susan Sarandon
Libérer: 2024-11-24 06:05:14
original
304 Les gens l'ont consulté

How to Resolve a NoSuchMethodError in javax.persistence.Table.indexes() After Upgrading Hibernate in a Play Framework Application?

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

Dans une application Play Framework, mise à niveau depuis Hibernate 4.2.5.Final à 4.3.0.Final peut conduire à un Exception "NoSuchMethodError" concernant javax.persistence.Table.indexes().

Cause :

Le problème provient d'un conflit de dépendances entre l'artefact play-java-jpa et l'artefact hibernate-entitymanager. L'artefact play-java-jpa repose sur une version différente de l'API de persistance (version 2.0) que l'artefact hibernate-entitymanager (version 2.1). Lorsque les deux artefacts sont présents dans le chemin de classe, la définition d'API la plus récente est prioritaire, ce qui entraîne la non-définition de la méthode javax.persistence.Table.indexes().

Solution :

Pour résoudre le problème, modifiez votre fichier build.sbt et excluez la dépendance hibernate-jpa-2.0-api du play-java-jpa artefact. La configuration des dépendances mise à jour devrait ressembler à ceci :

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

Cette configuration garantit que le chemin de classe contient uniquement la définition de l'API de la version la plus récente (2.1) et évite le conflit de définition de méthode.

Pour Play 2.2.x :

La configuration du fichier build.sbt fournie ci-dessus est conçue pour Play 2.2.x. Pour les versions antérieures de Play, il peut exister des différences dans la configuration du fichier de build. Consultez la documentation Play pour plus d'informations sur la configuration des dépendances dans les différentes versions 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal