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.