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.