Erreur Hibernate «Aucun fournisseur de persistance pour EntityManager»

1. Introduction

Dans ce didacticiel, nous verrons comment résoudre une erreur Hibernate courante - «Aucun fournisseur de persistance pour EntityManager». En termes simples, le fournisseur de persistance fait référence à l'implémentation JPA spécifique utilisée dans notre application pour conserver les objets dans la base de données.

Pour en savoir plus sur JPA et ses implémentations, nous pouvons consulter notre article sur la différence entre JPA, Hibernate et EclipseLink.

2. Quelles sont les causes de l'erreur

Nous verrons l'erreur lorsque l'application ne sait pas quel fournisseur de persistance doit être utilisé .

Cela se produit lorsque le fournisseur de persistance n'est ni mentionné dans le fichier persistence.xml ni configuré dans la classe d'implémentation PersistenceUnitInfo .

3. Correction de l'erreur

Pour corriger cette erreur, nous devons simplement définir le fournisseur de persistance dans le fichier persistence.xml :

org.hibernate.jpa.HibernatePersistenceProvider

Ou, si nous utilisons Hibernate version 4.2 ou antérieure :

org.hibernate.ejb.HibernatePersistence

Dans le cas où nous avons implémenté l' interface PersistenceUnitInfo dans notre application, nous devons également remplacer le

Méthode getPersistenceProviderClassName () :

@Override public String getPersistenceProviderClassName() { return HibernatePersistenceProvider.class.getName(); }

Pour vous assurer que tous les jars Hibernate nécessaires sont disponibles, il est important d'ajouter la dépendance hibernate-core dans le fichier pom.xml :

 org.hibernate hibernate-core ${hibernate.version} 

4. Conclusion

Pour résumer, nous avons vu les causes possibles de l'erreur Hibernate «Pas de fournisseur de persistance pour EntityManager» et diverses façons de la résoudre.

Comme d'habitude, l'exemple de projet Hibernate est disponible à l'adresse over sur GitHub.