Dvalemodusfeil “Ingen vedvarende leverandør for EntityManager”

1. Introduksjon

I denne opplæringen vil vi se hvordan vi kan løse en vanlig dvalemodusfeil - "Ingen vedvarende leverandør for EntityManager". Enkelt sagt, referanseleverandør refererer til den spesifikke JPA-implementeringen som brukes i applikasjonen vår for å vedvare objekter til databasen.

For å lære mer om JPA og dens implementeringer, kan vi referere til artikkelen vår om forskjellen mellom JPA, Hibernate og EclipseLink.

2. Hva som forårsaker feilen

Vi får se feilen når søknaden vet ikke hvilkenutholdenhetsleverandør skal brukes.

Dette skjer når utholdenhetsleverandøren verken er nevnt i persistence.xml fil eller konfigurert i PersistenceUnitInfo implementeringsklasse.

3. Å fikse feilen

For å fikse denne feilen, må vi bare definere utholdenhetsleverandøren i persistence.xml fil:

org.hibernate.jpa.HibernatePersistenceProvider

Eller hvis vi bruker Dvalemodus versjon 4.2 eller eldre:

org.hibernate.ejb.HibernatePersistence

I tilfelle vi har implementert PersistenceUnitInfo grensesnitt i applikasjonen vår, må vi også overstyre

getPersistenceProviderClassName () metode:

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

For å sikre at alle nødvendige dvalemodusglass er tilgjengelige, er det viktig å legge til dvale-kjerne avhengighet i pom.xml fil:

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

4. Konklusjon

For å oppsummere har vi sett de mulige årsakene til dvalemodusfeilen “No persistence provider for EntityManager” og forskjellige måter å løse den på.

Som vanlig er eksemplet på dvalemodus tilgjengelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found