Atšķirība starp JPA un hibernate

Atšķirība starp JPA un hibernate
Atšķirība starp JPA un hibernate

Video: Atšķirība starp JPA un hibernate

Video: Atšķirība starp JPA un hibernate
Video: The European Union Explained* 2024, Jūlijs
Anonim

JPA pret hibernāciju

Gandrīz visām uzņēmuma lietojumprogrammām ir regulāri jāpiekļūst relāciju datu bāzēm. Taču problēma, ar kuru saskārās ar agrākajām tehnoloģijām (piemēram, JDBC), bija pretestības neatbilstība (atšķirība starp objektorientētām un relāciju tehnoloģijām). Šīs problēmas risinājums tika ieviests, ieviešot abstraktu slāni, ko sauc par noturības slāni, kas ietver datu bāzes piekļuvi no biznesa loģikas. JPA (Java Persistence API) ir sistēma, kas paredzēta relāciju datu pārvaldībai (izmantojot noturības slāni) Java lietojumprogrammās. Java izstrādātāju kopienā tiek izmantotas daudzas JPA pārdevēju implementācijas. Hibernate ir vispopulārākā šāda JPA ieviešana (daži citi ir DataNucleus, EclipseLink un OpenJPA). Jaunāko JPA versiju (JPA 2.0) pilnībā atbalsta Hibernate 3.5, kas tika izlaista 2010. gada martā.

Kas ir JPA?

JPA ir sistēma Java relāciju datu pārvaldībai. To var izmantot ar lietojumprogrammām, kas izmanto JSE (Java platforma, standarta izdevums) vai JEE (Java platforma, Enterprise Edition). Tā pašreizējā versija ir JPA 2.0, kas tika izlaista 2009. gada 10. decembrī. JPA aizstāja EJB 2.0 un EJB 1.1 entītiju pupiņas (kuras Java izstrādātāju kopiena ļoti kritizēja par to, ka tās ir smagas). Lai gan entītiju pupiņas (EJB) nodrošināja noturības objektus, daudzi izstrādātāji bija pieraduši tā vietā izmantot salīdzinoši vieglus objektus, ko piedāvāja DAO (Data Access Objects) un citas līdzīgas sistēmas. Rezultātā tika ieviesta JPA, un tajā tika ietvertas daudzas iepriekš minēto ietvaru glītās iezīmes.

Noturība, kā aprakstīts JPA, attiecas uz API (definēta Javax.noturība), JPQL (Java platforma, Enterprise Edition) un metadati, kas nepieciešami relāciju objektiem. Noturības entītijas stāvoklis parasti tiek saglabāts tabulā. Entītijas gadījumi atbilst relāciju datu bāzes tabulas rindām. Metadati tiek izmantoti, lai izteiktu attiecības starp entītijām. Anotācijas vai atsevišķi XML deskriptora faili (izvietoti kopā ar lietojumprogrammu) tiek izmantoti, lai norādītu metadatus entītiju klasēs. JPQL, kas ir līdzīgs SQL vaicājumiem, tiek izmantots, lai vaicātu saglabātās entītijas.

Kas ir hibernācija?

Hibernate ir ietvars, ko var izmantot objektu relāciju kartēšanai, kas paredzēta Java programmēšanas valodai. Konkrētāk, tā ir ORM (objektu relāciju kartēšanas) bibliotēka, ko var izmantot, lai kartētu objektu relāciju modeli ar parasto relāciju modeli. Vienkārši izsakoties, tas izveido kartēšanu starp Java klasēm un tabulām relāciju datu bāzēs, arī starp Java un SQL datu tipiem. Hibernate var izmantot arī datu vaicājumiem un izguvei, ģenerējot SQL zvanus. Tāpēc programmētājs ir atbrīvots no manuālas rezultātu kopu apstrādes un objektu konvertēšanas. Hibernate tiek izlaists kā bezmaksas atvērtā koda ietvars, kas tiek izplatīts saskaņā ar GNU licenci. JPA API ieviešana ir nodrošināta Hibernate 3.2 un jaunākās versijās. Gevins Kings ir Hibernate dibinātājs.

Kāda ir atšķirība starp JPA un Hibernate?

JPA ir ietvars relāciju datu pārvaldībai Java lietojumprogrammās, savukārt Hibernate ir īpaša JPA ieviešana (tāpēc ideālā gadījumā JPA un Hibernate nevar tieši salīdzināt). Citiem vārdiem sakot, Hibernate ir viens no populārākajiem ietvariem, kas ievieš JPA. Hibernate ievieš JPA, izmantojot Hibernate Annotation un EntityManager bibliotēkas, kas ir ieviestas papildus Hibernate Core bibliotēkām. Gan EntityManager, gan Annotations seko Hibernate dzīves ciklam. Jaunāko JPA versiju (JPA 2.0) pilnībā atbalsta Hibernate 3.5. JPA priekšrocība ir standartizēta saskarne, tāpēc izstrādātāju kopienai tas būs labāk pazīstams nekā hibernate. No otras puses, vietējās hibernate API var uzskatīt par jaudīgākām, jo to funkcijas ir JPA funkciju superkopa.

Ieteicams: