Maison > Java > javaDidacticiel > Pourquoi la mise à niveau de la mise en veille prolongée de 4.2.5.Final vers 4.3.0.Final provoque-t-elle une « NoSuchMethodError » dans « javax.persistence.Table.indexes() » ?

Pourquoi la mise à niveau de la mise en veille prolongée de 4.2.5.Final vers 4.3.0.Final provoque-t-elle une « NoSuchMethodError » dans « javax.persistence.Table.indexes() » ?

Barbara Streisand
Libérer: 2024-11-24 01:54:12
original
1024 Les gens l'ont consulté

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

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

Question :

Lors de la mise à niveau depuis Hibernate 4.2.5.Final à 4.3.0.Final dans une application Play Framework, une exception se produit :

java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
Copier après la connexion

Réponse :

Le problème survient en raison d'un conflit entre différentes versions de les dépendances de la spécification Java Persistence API (JPA) dans le chemin de classe de l'application. Plus précisément, le plugin Play Framework JPA inclut une dépendance à la spécification JPA 2.0, tandis qu'Hibernate 4.3.0.Final nécessite la nouvelle spécification JPA 2.1.

Pour résoudre ce problème, excluez la dépendance de la spécification JPA 2.0 de la version. .sbt et remplacez-le par la dépendance suivante sur la spécification JPA 2.1 :

"org.hibernate.javax.persistence" % "hibernate-jpa-2.1-api" % "1.0.0.Final"
Copier après la connexion

Pour Jouez à 2.2.x, modifiez le fichier build.sbt comme suit :

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

En excluant la dépendance JPA 2.0 et en incluant la dépendance JPA 2.1, vous vous assurez que la version correcte de la spécification JPA est utilisée, en résolvant 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
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