logo

JPA vs. Hibernate

Hva er JPA?

En JPA (Java Persistence API) er en spesifikasjon av Java som brukes til å få tilgang til, administrere og vedvare data mellom Java-objekt og relasjonsdatabase. Det betraktes som en standard tilnærming for objektrelasjonell kartlegging.

JPA kan sees på som en bro mellom objektorienterte domenemodeller og relasjonsdatabasesystemer. Som en spesifikasjon utfører ikke JPA noen operasjon av seg selv. Derfor krever det implementering. Så ORM-verktøy som Hibernate, TopLink og iBatis implementerer JPA-spesifikasjoner for datautholdenhet.


Hva er Hibernate?

En Hibernate er et Java-rammeverk som brukes til å lagre Java-objektene i relasjonsdatabasesystemet. Det er et åpen kildekode, lett, ORM (Object Relational Mapping)-verktøy.

Hibernate er en implementering av JPA. Så det følger de vanlige standardene gitt av JPA.


Behov for JPA

Som vi har sett så langt, er JPA en spesifikasjon. Det gir felles prototype og funksjonalitet til ORM-verktøy. Ved å implementere samme spesifikasjon følger alle ORM-verktøy (som Hibernate, TopLink, iBatis) de vanlige standardene. I fremtiden, hvis vi ønsker å bytte applikasjonen vår fra ett ORM-verktøy til et annet, kan vi gjøre det enkelt.


JPA vs. Hibernate

JPA Gå i dvale
Java Persistence API (JPA) definerer administrasjonen av relasjonsdata i Java-applikasjonene. Hibernate er et ORM-verktøy (Object-Relational Mapping) som brukes til å lagre Java-objektets tilstand i databasen.
Det er bare en spesifikasjon. Ulike ORM-verktøy implementerer det for datautholdenhet. Det er en av de mest brukte JPA-implementeringene.
Det er definert i javax.persistence pakke. Det er definert i org.dvale pakke.
De EntityManagerFactory grensesnitt brukes til å samhandle med enhetslederfabrikken for persistensenheten. Dermed gir det en enhetsleder. Det bruker SessionFactory grensesnitt for å lage øktforekomster.
Det bruker EntityManager grensesnitt for å opprette, lese og slette operasjoner for forekomster av tilordnede enhetsklasser. Dette grensesnittet samhandler med persistenskonteksten. Det bruker Økt grensesnitt for å opprette, lese og slette operasjoner for forekomster av tilordnede enhetsklasser. Den oppfører seg som et kjøretidsgrensesnitt mellom en Java-applikasjon og Hibernate.
Det bruker Java Persistence Query Language (JPQL) som et objektorientert spørrespråk for å utføre databaseoperasjoner. Det bruker Hibernate Query Language (HQL) som et objektorientert spørrespråk for å utføre databaseoperasjoner.