Dvalefejl “Ingen udholdenhedsudbyder til EntityManager”
1. Introduktion
I denne vejledning ser vi, hvordan vi løser en almindelig dvale-fejl - "Ingen udholdenhedsudbyder til EntityManager". Kort sagt, vedholdenhedsudbyder henviser til den specifikke JPA-implementering, der bruges i vores applikation til at opretholde objekter til databasen.
For at lære mere om JPA og dens implementeringer kan vi henvise til vores artikel om forskellen mellem JPA, Hibernate og EclipseLink.
2. Hvad der forårsager fejlen
Vi ser fejlen, hvornår ansøgningen ved ikke hvilkenudholdenhedsudbyder skal bruges.
Dette sker, når udholdenhedsudbyderen hverken er nævnt i persistence.xml fil eller konfigureret i PersistenceUnitInfo implementeringsklasse.
3. Løsning af fejlen
For at rette op på denne fejl skal vi bare definere udbyder af udholdenhed i persistence.xml fil:
org.hibernate.jpa.HibernatePersistenceProvider
Eller hvis vi bruger det Dvaletilstand version 4.2 eller ældre:
org.hibernate.ejb.HibernatePersistence
Hvis vi har implementeret PersistenceUnitInfo interface i vores applikation, skal vi også tilsidesætte
getPersistenceProviderClassName () metode:
@Override public String getPersistenceProviderClassName () {return HibernatePersistenceProvider.class.getName (); }
For at sikre, at alle de nødvendige dvale krukker er tilgængelige, er det vigtigt at tilføje dvale-kerne afhængighed i pom.xml fil:
org.hibernate dvale-kerne $ {hibernate.version}
4. Konklusion
For at opsummere har vi set de mulige årsager til dvale-fejlen "Ingen udholdenhedsudbyder til EntityManager" og forskellige måder at løse det på.
Som normalt er eksemplet på dvale-projekt tilgængeligt på GitHub.