Java-applikationer har traditionelt anvendte teknologier som JDBC (Java Database Connectivity) til at få adgang til relationelle databaser for konstant at gemme data. Hovedproblemet var forskellen mellem objektorienterede og relationelle teknologier. JDBC API ville kræve, at udviklere håndkoder de mest primitive CRUD (oprette, læse, opdatere og slette) operationer i SQL, som manglede portabilitet.
Derudover var koden fuldstændigt SQL-afhængig, hvilket ikke er en standardspecifikation for relationelle databaser, hvilket ville gøre overgangen fra en database til en anden vanskeligere. Problemet er relationel teknologi er fokuseret på data og deres forhold, hvorimod det objektorienterede paradigme ikke kun lægger vægt på data, men også operationer, der udføres på dem. Dette resulterer i en objekt-relationel impedansmatch. En løsning, der er bredt accepteret, er objekt-relationel kortlægning (ORM).
Hibernate er en ORM (Object / Relational Mapping) ramme for Java-programmeringssprog, der beskæftiger sig med datapersistens. Det er simpelthen en open-source objekt-relationel mapping-løsning, der kortlægger Java-klasser til databasetabeller i relationelle databaser og fra Java til SQL-datatyper. Det er en letvægts ORM-ramme, der distribueres under GNU-licens, der sigter mod at give udviklere en gennemsigtig mekanisme for at opnå vedholdenhed. Den bruger et kraftfuldt forespørgselssprog, der ligner SQL kaldet HQL (forkortelse for Hibernate Query Language), som hurtigt integreres med både eksisterende og nye applikationer uden at ændre resten af applikationen. Plus, det er fuldt ud i overensstemmelse med objektorienterede forestillinger som arv, polymorfisme og tilknytning. Og det bedste, det kræver ikke, at du ændrer applikationsklassen for at opnå vedholdenhed.
Java Persistence API, eller JPA, er en specifikation, der beskriver grænsefladen til objektrelationelle kortlægninger og vedvarende objektstyring. Ud over API-definitionen definerer det sæt regler og retningslinjer for, hvordan man implementerer objektrelationskortlægningen, og hvordan man gør disse specifikationer i overensstemmelse med alle JPA-udbydere. Dvaletilstand er den mest avancerede og mest anvendte ORM-implementering af JPA-retningslinjer. JPA leverer simpelthen objekt / relationel kortlægningsplatform til styring af data mellem Java-objekter / klasser og en relationsdatabase i Java-applikationer. Det er en grænsefladespecifikation designet til JPA-implementeringsleverandører for at skabe en standard til ORM-implementering for at målrette krav til højtydende datatilgangslag. Dvaletilstand er den mest populære JPA-leverandør.
JPA, forkortelse for Java Persistence API, er en specifikation for adgang til, styring og vedvarende data i applikationer, der bruger Java Platform, Standard Edition (Java, SE) og Java Platform, Enterprise Edition (Java, EE). Dvaletilstand er på den anden side mere et værktøj til ORM-implementering, der er i overensstemmelse med JPA-specifikationer.
JPA er en specifikation for objektrelationel kortlægning i Java, der giver udviklere mulighed for at udføre databasefunktioner meget hurtigere og effektivt, hvilket muliggør let interaktion med databaser. Det er standard-API'en for persistens og objektrelationskortlægning, der giver udviklerne flere fordele til databindende operationer. Hibernate er et open source-objektrelationsmappingværktøj, der forenkler udviklingen af Java-applikationer for at gøre forbindelsen til databaser meget lettere end nogensinde.
Problemet med JPA er, at det kun er en specifikation, der ikke indeholder nogen implementeringsklasser. API er kun en samling af klasser og metoder til vedvarende at gemme data i en database efter et specifikt sæt regler og forskrifter, der skal følges af JPA-leverandører. Dvaletilstand er en af de mange JPA-implementeringsleverandører, der implementerer JPA-specifikationer i ethvert miljø, der understøtter JPA, inklusive Java SE og Java EE-applikationsservere.
Udover at være den mest populære JPA-implementeringssælger, bevarer Hibernate framework sin native API til at fremme bagudkompatibilitet såvel som imødekomme funktioner, der ikke er standard. Dvaletilstand leveres med flere funktioner, der ikke understøttes af Java Persistence API, såsom udvidede identifikationsgeneratorer, nye Date and Time API, gentagne kommentarer, dampforespørgselsresultater, tilpassede CRUD-udsagn, uændelige enheder, naturlig ID-support, ad hoc-sammenslutning af ikke-relaterede enheder , etc.
EntityManager er standarden for JPA-specifikationsimplementering, der er den samme på tværs af alle implementeringer. Tværtimod, hvis du vil bruge Hibernate API, ville du bruge Hibernate-specifik session til at håndtere persistens. Du vil dog ikke være i stand til at migrere til en ny leverandør, hvis du vælger at bruge session, fordi det er begrænset til Dvale API'er.
Næsten alle virksomhedsapplikationer har brug for en måde at lagre data vedvarende. Det er vigtigt for virksomhedsapplikationer på grund af den krævede adgang til relationelle databaser. Persistens er et grundlæggende koncept i applikationsudvikling og er en udfordring i sig selv på grund af behovet for at serialisere de hierarkisk strukturerede Java-objekter til en database på en måde, der er både hurtig og effektiv. Selvom persistens allerede har været et varmt diskussionsemne i Java-samfundet, er mange udviklere ikke engang enige om omfanget af problemet. I forbindelse med objektorienteret sprog betyder vedholdenhed, at dataene stadig er tilgængelige, selv efter den proces, der blev oprettet, er afsluttet. Der er mange måder at lagre data vedvarende. Dvaletilstand er et sådant projekt, der sigter mod at give en komplet løsning på problemet med persistens i Java, hvorimod JPA er en specifikation til styring af vedvarende data og objekt-relationelle kortlægninger.