Java lietojumprogrammās tradicionāli tiek izmantotas tehnoloģijas, piemēram, JDBC (Java Database Connectivity), lai piekļūtu relāciju datu bāzēm, lai pastāvīgi saglabātu datus. Galvenā problēma bija atšķirība starp objektorientētām un relāciju tehnoloģijām. JDBC API prasīs izstrādātājiem ar roku kodēt primitīvākās CRUD (izveidot, lasīt, atjaunināt un dzēst) operācijas SQL, kurām nebija pārnesamības..
Turklāt kods bija pilnībā atkarīgs no SQL, kas nav standarta specifikācija relāciju datu bāzēm, kas apgrūtinātu pāreju no vienas datu bāzes uz otru. Problēma ir tā, ka relāciju tehnoloģija ir vērsta uz datiem un to attiecībām, turpretī objektorientētā paradigma uzsver ne tikai datus, bet arī ar tiem veiktās operācijas. Tā rezultātā rodas neatbilstība objekta relāciju pretestībai. Viens no plaši pieņemtajiem risinājumiem ir objektu-relāciju kartēšana (ORM).
Hibernēts ir ORM (Object / Relational Mapping) ietvars Java programmēšanas valodai, kas attiecas uz datu noturību. Tas vienkārši ir atvērtā pirmkoda objektu-relāciju kartēšanas risinājums, kas Java klases savieno ar datu bāzu tabulām relāciju datu bāzēs un no Java līdz SQL datu tipiem. Tas ir viegls ORM ietvars, kas tiek izplatīts saskaņā ar GNU licenci un kura mērķis ir nodrošināt izstrādātājus ar pārredzamu mehānismu noturības panākšanai. Tas izmanto jaudīgu vaicājumu valodu, kas līdzīga SQL, ko sauc par HQL (hibernate Query Language), kas ātri integrējas gan ar esošajām, gan jaunajām lietojumprogrammām, nemainot pārējo lietojumprogrammu. Turklāt tas pilnībā atbilst uz objektu orientētiem priekšstatiem, piemēram, mantojumam, polimorfismam un asociācijai. Un pats labākais - lai sasniegtu noturību, jums nav jāpārveido lietojumprogrammas klase.
Java noturības API jeb JPA ir specifikācija, kas apraksta interfeisu objekta relāciju kartēšanai un pastāvīgai objekta vadībai. Papildus API definīcijai tas definē noteikumu un vadlīniju kopumu, kā ieviest objekta relāciju kartēšanu un kā šīs specifikācijas padarīt saderīgas ar visiem APA sniedzējiem. Hibernācija ir vismodernākā un visplašāk izmantotā JPA pamatnostādņu ORM ieviešana. JPA vienkārši nodrošina objektu / relāciju kartēšanas platformu datu pārvaldībai starp Java objektiem / klasēm un relāciju datu bāzi Java lietojumprogrammās. Tā ir saskarnes specifikācija, kas paredzēta APA ieviešanas pārdevējiem, lai izveidotu ORM ieviešanas standartu, lai mērķētu uz augstas veiktspējas datu piekļuves līmeņa prasībām. Hibernate ir vispopulārākais JPA pārdevējs.
JPA, saīsināts no Java Persistence API, ir specifikācija piekļuvei datiem, to pārvaldībai un pastāvīgai saglabāšanai lietojumprogrammās, izmantojot Java Platform, Standard Edition (Java, SE) un Java Platform, Enterprise Edition (Java, EE). No otras puses, hibernēts ir vairāk ORM ieviešanas rīks, kas atbilst JPA specifikācijām.
JPA ir Java-objekta relāciju kartēšanas specifikācija, kas ļauj izstrādātājiem daudz ātrāk un efektīvāk veikt datu bāzes darbības, tādējādi ļaujot viegli mijiedarboties ar datu bāzēm. Tā ir standarta API noturības un objektu relāciju kartēšanai, nodrošinot izstrādātājiem vairākas priekšrocības datu saistošām darbībām. Hibernēts ir atvērtā koda objektu relāciju kartēšanas rīks, kas vienkāršo Java lietojumprogrammu attīstību, lai savienojumu ar datu bāzēm padarītu daudz vieglāku nekā jebkad.
JPA problēma ir tā, ka tā ir tikai specifikācija, kas nesniedz nekādas ieviešanas klases. API ir tikai klašu un metožu kopums, lai pastāvīgi saglabātu datus datu bāzē, ievērojot īpašu noteikumu un noteikumu kopumu, kas jāievēro APA pārdevējiem. Hibernate ir viens no daudzajiem JPA ieviešanas pakalpojumu sniedzējiem, kas JPA specifikāciju ievieš jebkurā vidē, kas atbalsta JPA, ieskaitot Java SE un Java EE lietojumprogrammu serverus..
Papildus tam, ka Hibernate ietvars ir vispopulārākais JPA ieviešanas piegādātājs, tas saglabā savu vietējo API, lai veicinātu savietojamību ar atpakaļejošu datumu, kā arī lai nodrošinātu nestandarta funkcijas. Hibernācijai ir vairākas funkcijas, kuras neatbalsta Java Noturības API, piemēram, paplašināti identifikatoru ģeneratori, jauns datuma un laika API, atkārtojamas anotācijas, tvaika vaicājuma rezultāti, pielāgojami CRUD paziņojumi, negrozāmas entītijas, dabisko ID atbalsts, nesaistītu entītiju ad hoc pievienošanās. utt.
EntityManager ir APA specifikācijas ieviešanas standarts, kas ir vienāds visās ieviešanās. Tieši pretēji, ja vēlaties izmantot Hibernate API, tad, lai apstrādātu noturību, jūs izmantotu Hibernate specifisko sesiju. Tomēr jūs nevarēsit migrēt pie jauna piegādātāja, ja izvēlēsities izmantot sesiju, jo tā ir ierobežota ar hibernācijas API.
Gandrīz visām uzņēmuma lietojumprogrammām ir vajadzīgs kāds veids, kā pastāvīgi saglabāt datus. Tas ir ļoti svarīgi uzņēmuma lietojumprogrammām, jo ir nepieciešama piekļuve relāciju datu bāzēm. Noturība ir pamatkoncepcija lietojumprogrammu izstrādē, un tā pati par sevi ir izaicinājums, jo ir nepieciešams hierarhiski strukturētus Java objektus sērijveidot datu bāzē tādā veidā, kas ir ātrs un efektīvs. Kaut arī neatlaidība jau ir bijusi karsta diskusiju tēma Java kopienā, daudzi izstrādātāji pat nevienojas par problēmas apmēru. Objektorientētās valodas kontekstā noturība nozīmē, ka dati joprojām ir pieejami pat pēc procesa, kas to izveidoja, beigām. Pastāv dažādi datu neatlaidīgas glabāšanas veidi. Hibernēts ir viens no šādiem projektiem, kura mērķis ir nodrošināt pilnīgu risinājumu pastāvības problēmai Java, savukārt JPA ir specifikācija noturīgu datu un objektu-relāciju kartējumu pārvaldībai..