Aplikácie Java tradične využívali technológie ako JDBC (Java Database Connectivity) na prístup k relačným databázam s cieľom neustále ukladať údaje. Hlavným problémom bol rozdiel medzi objektovo-orientovanými a relačnými technológiami. JDBC API by vyžadovalo od vývojárov, aby ručne kódovali najprimitívnejšie operácie CRUD (vytvorenie, čítanie, aktualizácia a vymazanie) v SQL, ktorým chýbala prenosnosť..
Okrem toho bol kód úplne závislý od SQL, čo nie je štandardná špecifikácia pre relačné databázy, čo by sťažilo prechod z jednej databázy do druhej. Problém je, že vzťahová technológia je zameraná na údaje a ich vzťah, zatiaľ čo objektovo orientované paradigma zdôrazňuje nielen údaje, ale aj operácie s nimi vykonávané. To má za následok nesúlad objektovo-relačných impedancií. Jedným zo široko akceptovaných riešení je objektovo-relačné mapovanie (ORM)..
Režim dlhodobého spánku je rámec ORM (Object / Relational Mapping) pre programovací jazyk Java, ktorý sa týka perzistencie údajov. Je to jednoducho open-source objektovo-relačné mapovacie riešenie, ktoré mapuje triedy Java do databázových tabuliek v relačných databázach az Java na dátové typy SQL. Je to ľahký rámec ORM distribuovaný na základe licencie GNU, ktorého cieľom je poskytnúť vývojárom transparentný mechanizmus na dosiahnutie vytrvalosti. Používa výkonný dotazovací jazyk podobný SQL, ktorý sa nazýva HQL (skratka pre Hibernate Query Language), ktorý sa rýchlo integruje do existujúcich aj nových aplikácií bez zmeny zvyšku aplikácie. Navyše je plne v súlade s objektovo-orientovanými pojmami, ako je dedičnosť, polymorfizmus a asociácia. A najlepšie na tom je, že nevyžaduje zmenu triedy aplikácie, aby ste dosiahli vytrvalosť.
Rozhranie Java Persistence API alebo JPA je špecifikácia, ktorá popisuje rozhranie pre objektovo-relačné mapovanie a správu perzistentných objektov. Okrem definície API definuje súbor pravidiel a usmernení o tom, ako implementovať objektové relačné mapovanie a ako zabezpečiť, aby tieto špecifikácie boli v súlade so všetkými poskytovateľmi JPA. Hibernácia je najpokrokovejšia a najpoužívanejšia implementácia usmernení JPA pre ORM. JPA jednoducho poskytuje platformu objektových / relačných máp na správu dát medzi Java objektmi / triedami a relačnou databázou v Java aplikáciách. Je to špecifikácia rozhrania navrhnutá pre dodávateľov implementácie JPA, aby vytvorili štandard pre implementáciu ORM s cieľom zamerať sa na vysoko výkonné požiadavky na vrstvu prístupu k údajom. Hibernate je najobľúbenejší predajca JPA.
JPA, skratka pre Java Persistence API, je špecifikácia pre prístup, správu a pretrvávanie údajov v aplikáciách využívajúcich Java Platform, Standard Edition (Java, SE) a Java Platform, Enterprise Edition (Java, EE). Na druhej strane režim dlhodobého spánku je skôr nástrojom na implementáciu ORM, ktorý je v súlade so špecifikáciami JPA.
JPA je špecifikácia objektovo-relačného mapovania v Jave, ktorá umožňuje vývojárom vykonávať databázové operácie oveľa rýchlejšie a efektívnejšie, čím umožňuje ľahkú interakciu s databázami. Je to štandardné API pre mapovanie perzistencie a objektového relačného mapovania, ktoré vývojárom poskytuje niekoľko výhod pre operácie viazania údajov. Režim dlhodobého spánku je open-source Object Relation Mapping Tool, ktorý zjednodušuje vývoj Java aplikácií, aby sa pripojenie k databázam oveľa jednoduchšie ako kedykoľvek predtým.
Problém s JPA je v tom, že je to iba špecifikácia, ktorá neposkytuje žiadne triedy implementácie. Rozhranie API je iba súbor tried a metód na trvalé ukladanie údajov do databázy podľa konkrétneho súboru pravidiel a predpisov, ktoré majú predajcovia JPA dodržiavať. Hibernate je jedným z mnohých dodávateľov implementácie JPA, ktorý implementuje špecifikáciu JPA v akomkoľvek prostredí podporujúcom JPA vrátane aplikačných serverov Java SE a Java EE..
Okrem toho, že Hibernate je najobľúbenejším dodávateľom implementácie JPA, zachováva si svoje natívne API na podporu spätnej kompatibility a prispôsobenia sa neštandardným funkciám. Režim dlhodobého spánku prichádza s niekoľkými funkciami, ktoré nie sú podporované rozhraním Java Persistence API, ako sú generátory rozšíreného identifikátora, nové rozhranie API Date and Time, opakovateľné anotácie, výsledky dotazov v pare, prispôsobiteľné príkazy CRUD, nemenné entity, podpora prirodzených identifikátorov, ad hoc pripojenie neprepojených entít. , atď.
EntityManager je štandard pre implementáciu špecifikácie JPA, ktorý je rovnaký vo všetkých implementáciách. Naopak, ak chcete používať rozhranie Hibernate API, na zvládnutie pretrvávania by ste použili špecifickú reláciu dlhodobého spánku. Ak sa rozhodnete používať reláciu, nebudete môcť migrovať na nového dodávateľa, pretože je obmedzená na rozhrania Hibernate API.
Takmer všetky podnikové aplikácie potrebujú nejaký spôsob trvalého ukladania údajov. Pre podnikové aplikácie je to nevyhnutné kvôli požadovanému prístupu k relačným databázam. Perzistencia je základným konceptom vo vývoji aplikácií a je sama osebe výzvou z dôvodu potreby serializovať hierarchicky štruktúrované Java objekty do databázy spôsobom, ktorý je rýchly a efektívny. Aj keď perzistencia už bola v komunite Java horúcou témou diskusie, mnohí vývojári sa ani nedohodnú na rozsahu problému. V kontexte objektovo orientovaného jazyka perzistencia znamená, že údaje sú stále prístupné aj po ukončení procesu, ktorý ich vytvoril. Existuje veľa spôsobov trvalého ukladania údajov. Hibernate je jeden taký projekt, ktorého cieľom je poskytnúť úplné riešenie problému pretrvávania v Jave, zatiaľ čo JPA je špecifikácia pre správu perzistentných dát a objektovo-relačné mapovanie..