APA pret hibernāciju
Lai regulāri piekļūtu relāciju datu bāzēm, ir vajadzīgas gandrīz visas uzņēmuma lietojumprogrammas. Bet problēma, ar ko saskārās agrākās tehnoloģijas (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 ar nosaukumu Noturības slānis, kas iekapsulē datu bāzi no biznesa loģikas. JPA (Java Persistence API) ir ietvars, kas paredzēts Java programmu relatīvo datu (izmantojot noturības slāni) pārvaldībai. Java izstrādātāju kopienā tiek izmantoti daudzi APA pārdevēji. Vispopulārākā šāda veida JPA ieviešana ir hibernācija (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 APA??
JPA ir Java relācijas datu pārvaldības ietvars. To var izmantot lietojumprogrammās, kurās izmanto JSE (Java platforma, standarta izdevums) vai JEE (Java platforma, uzņēmuma izdevums). 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ītijas pupas (kuras Java izstrādātāju kopiena asi kritizēja par to, ka tās ir smagas.) Kaut arī entītijas pupas (EJB) nodrošināja noturības objektus, daudzi izstrādātāji tā vietā bija pieraduši izmantot samērā vieglus objektus, ko piedāvā DAO (datu piekļuves objekti) un citas līdzīgas struktūras. Rezultātā tika ieviesta APA, kurā bija ietvertas daudzas no iepriekšminētajām ietvariem.
Noturība, kā aprakstīts JPA, aptver API (definēta javax.persistence), JPQL (Java platforma, Enterprise Edition) un relāciju objektiem nepieciešamos metadatus. Noturības vienības stāvoklis parasti tiek saglabāts tabulā. Entītijas gadījumi atbilst relāciju datu bāzes tabulas rindām. Metadatus izmanto, lai izteiktu attiecības starp entītijām. Metadatu norādīšanai entītiju klasēs tiek izmantotas anotācijas vai atsevišķi XML deskriptoru faili (izvietoti lietojumprogrammā). Uzglabāto entītiju vaicāšanai tiek izmantots JPQL, kas ir līdzīgs SQL vaicājumiem.
Kas ir pārziemojis?
Hibernēts ir ietvars, ko var izmantot objektu-relāciju kartēšanai, kas paredzēta Java programmēšanas valodai. Precīzāk, tā ir ORM (objekta-relācijas kartēšanas) bibliotēka, kuru var izmantot, lai objekta relāciju modeli kartētu tradicionālajā relācijas modelī. Vienkārši izsakoties, tas izveido kartēšanu starp Java klasēm un tabulām relāciju datu bāzēs, arī starp Java uz SQL datu tipiem. Hibernēto var izmantot arī datu meklēšanai un izguvei, ģenerējot SQL zvanus. Tāpēc programmētājs ir atbrīvots no rezultātu kopu un objektu konvertēšanas manuālas apstrādes. Hibernāts tiek izlaists kā bezmaksas un 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. Gavins Kings ir Hibernāta dibinātājs.
Kāda ir atšķirība starp JPA un Hibernate?
JPA ir relatīvo datu pārvaldības sistēma 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, pārziemot ir viens no populārākajiem ietvariem, kas īsteno APA. Hibernate īsteno JPA, izmantojot Hibernate Annotation un EntityManager bibliotēkas, kuras ir ieviestas virs hibernate Core bibliotēkām. Gan EntityManager, gan anotācijas seko hibernācijas dzīves ciklam. Jaunāko JPA versiju (JPA 2.0) pilnībā atbalsta Hibernate 3.5. JPA priekšrocība ir saskarne, kas ir standartizēta, tāpēc izstrādātāju kopiena ar to būs labāk pazīstama nekā pārziemot. No otras puses, vietējās hibernācijas API var uzskatīt par jaudīgākām, jo tās funkcijas ir augstākas nekā JPA..