Java-applikasjoner bruker tradisjonelt teknologier som JDBC (Java Database Connectivity) for å få tilgang til relasjonsdatabaser for å lagre data vedvarende. Hovedproblemet var forskjellen mellom objektorienterte og relasjonelle teknologier. JDBC API ville kreve at utviklere håndkode de mest primitive CRUD (opprette, lese, oppdatere og slette) operasjoner i SQL som manglet bærbarhet.
I tillegg var koden helt SQL-avhengig, som ikke er en standardspesifikasjon for relasjonsdatabaser, noe som ville gjøre overgangen fra en database til en annen vanskeligere. Problemet er relasjonell teknologi er fokusert på data og dets forhold, mens det objektorienterte paradigmet legger vekt på ikke bare data, men også operasjoner utført på den. Dette resulterer i objektrelasjonell impedans mismatch. En løsning som er allment akseptert, er objektrelasjonell kartlegging (ORM).
Hibernate er et ORM (Object / Relational Mapping) rammeverk for Java programmeringsspråket som er opptatt av data utholdenhet. Det er rett og slett en open-source objekt-relasjonell kartlegging løsning som kartlegger Java klasser til databasetabeller i relasjonsdatabaser og fra Java til SQL datatyper. Det er en lett ORM ramme distribuert under GNU lisens som har som mål å gi utviklere en gjennomsiktig mekanisme for å oppnå utholdenhet. Den bruker et kraftig spørrespråk som ligner på SQL kalt HQL (kort for Hibernate Query Language), som raskt integreres med både eksisterende og nye applikasjoner uten å endre resten av applikasjonen. I tillegg er det fullt kompatibelt med objektorienterte forestillinger som arv, polymorfisme og forening. Og det beste, det krever ikke at du endrer søknadsklassen for å oppnå utholdenhet.
Java Persistence API, eller JPA, er en spesifikasjon som beskriver grensesnittet for objekt-relasjonelle mappings og vedvarende objektstyring. Utover API-definisjonen definerer det sett med regler og retningslinjer for hvordan man implementerer objektrelasjonell kartlegging og hvordan man gjør disse spesifikasjonene kompatible med alle JPA-leverandører. Hibernate er den mest avanserte og mye brukte ORM implementeringen av JPA retningslinjer. JPA gir bare objekt / relasjonell kartleggingsplattform for å administrere data mellom Java-objekter / klasser og en relasjonsdatabase i Java-applikasjoner. Det er en grensesnittspesifikasjon utviklet for JPA-implementeringsleverandørene for å skape en standard for ORM-implementering for å målrette høye krav til dataadapterlag. Hibernate er den mest populære JPA-leverandøren.
JPA, kort for Java Persistence API, er en spesifikasjon for tilgang til, administrerende og vedvarende data i applikasjoner ved hjelp av Java Platform, Standard Edition (Java, SE) og Java Platform, Enterprise Edition (Java, EE). Hibernate, derimot, er mer et verktøy for ORM implementering som er i samsvar med JPA spesifikasjoner.
JPA er en spesifikasjon for objektrelasjonell kartlegging i Java som gjør det mulig for utviklere å utføre databaseoperasjoner mye raskere og effektivt, og dermed muliggjøre enkel interaksjon med databaser. Det er standard API for persistens- og objektrelasjonell kartlegging som gir flere fordeler til utviklerne for data-bindende operasjoner. Hibernate er et open-source Objektrelasjonelle kartverktøy som forenkler utviklingen av Java-applikasjoner for å gjøre tilkobling til databaser mye enklere enn noensinne.
Problemet med JPA er at det bare er en spesifikasjon som ikke gir noen implementeringsklasser. API er bare en samling av klasser og metoder for å lagre data vedvarende i en database som følger et bestemt sett av regler og forskrifter som skal følges av JPA-leverandører. Hibernate er en av de mange JPA-implementeringsleverandørene som implementerer JPA-spesifikasjon i ethvert miljø som støtter JPA, inkludert Java SE og Java EE applikasjonsservere.
I tillegg til å være den mest populære JPA-implementeringsleverandøren, beholder Hibernate Framework sin native API for å fremme bakoverkompatibilitet, så vel som imøtekommende standardfunksjoner. Dvalemodus kommer med flere funksjoner som ikke støttes av Java Persistence API, som utvidede identifiseringsgeneratorer, ny dato og klokkeslett API, repeterbare merknader, resultater for dampspørsmål, tilpassbare CRUD-setninger, uforanderlige enheter, naturlig ID-støtte, ad hoc-tilknytning til ikke-relaterte enheter , etc.
EntityManager er standarden for JPA-spesifikasjon implementering som er den samme på tvers av alle implementeringer. Tvert imot, hvis du vil bruke Hibernate API, vil du bruke Hibernate-spesifikke sesjon for å håndtere utholdenhet. Du vil imidlertid ikke kunne overføre til en ny leverandør hvis du velger å bruke økt fordi den er begrenset til dvalemoduler.
Nesten alle bedriftsapplikasjoner trenger noen måte å lagre data vedvarende. Det er avgjørende for bedriftsapplikasjoner på grunn av den nødvendige tilgangen til relasjonsdatabaser. Persistens er et grunnleggende konsept i applikasjonsutvikling og er en utfordring i seg selv på grunn av behovet for å serialisere de hierarkisk strukturerte Java-objektene til en database på en måte som er både rask og effektiv. Mens utholdenhet allerede har vært et hett tema for diskusjon i Java-fellesskapet, vil mange utviklere ikke engang være enige om omfanget av problemet. I sammenheng med objektorientert språk betyr utholdenhet at dataene fremdeles er tilgjengelige selv etter at prosessen som opprettet den, er avsluttet. Det er mange måter å lagre data vedvarende på. Dvalemodus er et slikt prosjekt som tar sikte på å gi en fullstendig løsning på problemet med utholdenhet i Java, mens JPA er en spesifikasjon for å håndtere vedvarende data og objektrelasjonelle mappings.