JPA vs Hibernate
Nesten alle bedriftsapplikasjoner kreves for å få tilgang til relasjonsdatabaser regelmessig. Men et problem som stod overfor tidligere teknologier (for eksempel JDBC) var impedans mismatch (forskjell mellom objektorienterte og relasjonelle teknologier). En løsning på dette problemet ble introdusert gjennom innføring av et abstrakt lag kalt Persistenslag, som inkapslerer databasetilgang fra forretningslogikken. JPA (Java Persistence API) er et rammeverk for styring av relasjonsdata (ved hjelp av persistenslaget) i Java-applikasjoner. Det er mange leverandørimplementeringer av JPA som brukes i Java-utviklerfellesskapet. Hibernate er den mest populære slik implementeringen av JPA (DataNucleus, EclipseLink og OpenJPA er noen andre). Den nyeste versjonen av JPA-versjonen (JPA 2.0) støttes fullt ut av Hibernate 3.5, som ble utgitt i mars 2010.
Hva er JPA?
JPA er et rammeverk for håndtering av relasjonsdata for Java. Den kan brukes med applikasjoner som bruker JSE (Java Platform, Standard Edition) eller JEE (Java Platform, Enterprise Edition). Den nåværende versjonen er JPA 2.0, som ble utgitt 10. desember 2009. JPA erstattet EJB 2.0 og EJB 1.1 enhetsbønner (som ble sterkt kritisert for å være tungvekt av Java-utviklerfellesskapet). Selv om enhetsbønner (i EJB) ga utholdenhetsobjekter, ble mange utviklere brukt til å benytte relativt lette gjenstander som tilbys av DAO (Data Access Objects) og andre lignende rammer i stedet. Som et resultat ble JPA introdusert, og det fanget mange av de fine funksjonene i rammene nevnt ovenfor.
Persistens som beskrevet i JPA dekker API (definert i javax.persistence), JPQL (Java Platform, Enterprise Edition) og metadata som kreves for relasjonsobjekter. Status for en vedvarende enhet er vanligvis vedvarende i et bord. Instanser av et foretak samsvarer med rader i tabellen i relasjonsdatabasen. Metadata brukes til å uttrykke forholdet mellom enheter. Annoteringer eller separate XML-beskrivelsesfiler (distribuert med programmet) brukes til å spesifisere metadata i enhetsklasser. JPQL, som ligner på SQL-spørringer, brukes til å spørre lagrede enheter.
Hva er dvalemodus?
Hibernate er et rammeverk som kan brukes til objekt-relasjonell kartlegging beregnet for Java programmeringsspråk. Nærmere bestemt er det et ORM (objekt-relasjonelle kartlegging) bibliotek som kan brukes til å kartlegge objektrelasjonsmodell i konvensjonell relasjonsmodell. Enkelt sagt skaper det en kartlegging mellom Java-klasser og tabeller i relasjonsdatabaser, også mellom Java til SQL-datatyper. Dvalemodus kan også brukes til dataforespørsel og gjenoppretting ved å generere SQL-anrop. Derfor er programmereren lettet fra manuell håndtering av resultatsett og konvertering av objekter. Hibernate er utgitt som en fri og åpen kildekode ramme distribuert under GNU lisens. En implementering for JPA API er gitt i Hibernate 3.2 og senere versjoner. Gavin King er grunnleggeren av Hibernate.
Hva er forskjellen mellom JPA og Hibernate?
JPA er et rammeverk for håndtering av relasjonsdata i Java-programmer, mens Hibernate er en spesifikk implementering av JPA (så ideelt kan ikke JPA og Hibernate sammenlignes direkte). Hibernate er med andre ord en av de mest populære rammene som implementerer JPA. Hibernate implementerer JPA gjennom Hibernate Annotation og EntityManager-biblioteker som implementeres på toppen av Hibernate Core-biblioteker. Både EntityManager og Notater følger livsveien til Hibernate. Den nyeste versjonen av JPA-versjonen (JPA 2.0) støttes fullt ut av Hibernate 3.5. JPA har fordelen av å ha et grensesnitt som er standardisert, slik at utviklerfellesskapet blir mer kjent med det enn dvalemodus. På den annen side kan innfødte Hibernate-APIer betraktes som kraftigere fordi dens funksjoner er en superset av den av JPA.