Hibernate pogreška "Nema pružatelja trajnosti za EntityManager"

1. Uvod

U ovom uputstvu vidjet ćemo kako riješiti uobičajenu hibernacijsku pogrešku - "Nema pružatelja trajnosti za EntityManager". Jednostavno rečeno, pružatelj postojanosti odnosi se na specifičnu implementaciju JPA koja se koristi u našoj aplikaciji za zadržavanje objekata u bazi podataka.

Da bismo saznali više o JPA i njezinim implementacijama, možemo se pozvati na naš članak o razlici između JPA, Hibernate i EclipseLink.

2. Što uzrokuje pogrešku

Pogrešku ćemo vidjeti kada aplikacija ne zna kojatreba koristiti pružatelja trajnosti.

To se događa kada pružatelj trajnosti nije spomenut u postojanost.xml datoteka niti konfigurirana u PersistenceUnitInfo klasa implementacije.

3. Ispravljanje pogreške

Da bismo ispravili ovu pogrešku, jednostavno moramo definirajte pružatelja trajnosti u programu postojanost.xml datoteka:

org.hibernate.jpa.HibernatePersistenceProvider

Ili, ako koristimo Hibernate verzija 4.2 ili starija:

org.hibernate.ejb.HibernatePersistence

U slučaju da smo implementirali PersistenceUnitInfo sučelje u našoj aplikaciji, također moramo nadjačati

getPersistenceProviderClassName () metoda:

@Override javni niz getPersistenceProviderClassName () {return HibernatePersistenceProvider.class.getName (); }

Da biste osigurali da su potrebne sve potrebne posudice za hibernaciju, važno je dodati hibernacija-jezgra ovisnost u pom.xml datoteka:

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

4. Zaključak

Da rezimiramo, vidjeli smo moguće uzroke hibernacijske pogreške "Nema pružatelja trajnosti za EntityManager" i razne načine za njezino rješavanje.

Kao i obično, uzorak Hibernate projekta dostupan je na GitHubu.