Maison > Java > javaDidacticiel > le corps du texte

Pourquoi mon application Play Framework avec Hibernate 4.3.0.Final renvoie-t-elle une NoSuchMethodError : javax.persistence.Table.indexes() ?

DDD
Libérer: 2024-11-25 09:07:12
original
836 Les gens l'ont consulté

Why Does My Play Framework App with Hibernate 4.3.0.Final Throw a NoSuchMethodError: javax.persistence.Table.indexes()?

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

Lors de l'utilisation de l'application Play Framework avec Hibernate 4.3.0.Final, les utilisateurs peuvent rencontrer une exception NoSuchMethodError dans javax.persistence.Table.indexes(). Ce problème est spécifique à Hibernate 4.3.0.Final et ne se produit pas dans les versions précédentes comme 4.2.5.Final.

Cause première

L'erreur se produit en raison de un conflit entre différentes versions de la spécification Hibernate dans le chemin de classe de l'application. L'artefact play-java-jpa repose sur l'API Hibernate 2.0 (hibernate-jpa-2.0-api), tandis qu'Hibernate 4.3.0.Final introduit l'API Hibernate 2.1. Par conséquent, les deux versions d'API coexistent dans le chemin de classe, conduisant à l'exception NoSuchMethodError.

Solution

Pour résoudre ce problème, excluez la dépendance de l'API Hibernate 2.0 du build.sbt en incluant Hibernate 4.3.0.Final. Voici une version mise à jour du fichier build.sbt :

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

Remarques :

  • Cette solution est applicable à Play 2.2.x. Des différences mineures peuvent exister dans les fichiers de build des versions précédentes.
  • Après avoir effectué ces modifications, la reconstruction de l'application devrait résoudre l'exception NoSuchMethodError.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal