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.