JPA:n ja lepotilan välinen ero

JPA:n ja lepotilan välinen ero
JPA:n ja lepotilan välinen ero

Video: JPA:n ja lepotilan välinen ero

Video: JPA:n ja lepotilan välinen ero
Video: BEHM - Hei rakas (Lyriikkavideo) 2024, Heinäkuu
Anonim

JPA vs Hibernate

Melkein kaikkien yrityssovellusten on käytettävä relaatiotietokantoja säännöllisesti. Mutta aikaisempien teknologioiden (kuten JDBC) ongelmana oli impedanssin epäsuhta (ero olio- ja relaatiotekniikoiden välillä). Ratkaisu tähän ongelmaan otettiin käyttöön ottamalla käyttöön abstrakti kerros nimeltä Persistence layer, joka kapseloi tietokannan pääsyn liiketoimintalogiikasta. JPA (Java Persistence API) on kehys, joka on omistettu relaatiotietojen hallintaan (käyttäen pysyvyyskerrosta) Java-sovelluksissa. Java-kehittäjäyhteisössä käytetään monia JPA:n toimittajatoteutuksia. Hibernate on suosituin tällainen JPA:n toteutus (DataNucleus, EclipseLink ja OpenJPA ovat joitain muita). Uusinta JPA-versiota (JPA 2.0) tukee täysin Hibernate 3.5, joka julkaistiin maaliskuussa 2010.

Mikä on JPA?

JPA on Javan relaatiotietojen hallintakehys. Sitä voidaan käyttää sovellusten kanssa, jotka käyttävät JSE:tä (Java Platform, Standard Edition) tai JEE:tä (Java Platform, Enterprise Edition). Sen nykyinen versio on JPA 2.0, joka julkaistiin 10. joulukuuta 2009. JPA korvasi EJB 2.0:n ja EJB 1.1:n entiteettipavut (jotka Java-kehittäjäyhteisö kritisoi voimakkaasti raskaasta painosta). Vaikka entiteettipavut (EJB:ssä) tarjosivat pysyvyysobjekteja, monet kehittäjät olivat tottuneet käyttämään DAO:n (Data Access Objects) ja muiden vastaavien kehysten tarjoamia suhteellisen kevyitä objekteja. Tämän seurauksena JPA otettiin käyttöön, ja se sisälsi monia yllä mainittujen kehysten siistejä ominaisuuksia.

JPA:ssa kuvattu pysyvyys kattaa API:n (määritetty javaxissa.pysyvyys), JPQL (Java Platform, Enterprise Edition) ja relaatioobjekteille vaadittavat metatiedot. Pysyvyyskokonaisuuden tila säilytetään tyypillisesti taulukkoon. Entiteetin esiintymät vastaavat relaatiotietokannan taulukon rivejä. Metadataa käytetään kokonaisuuksien välisten suhteiden ilmaisemiseen. Merkintöjä tai erillisiä XML-kuvaustiedostoja (ottaa käyttöön sovelluksen kanssa) käytetään metatietojen määrittämiseen entiteettiluokissa. JPQL:ää, joka on samanlainen kuin SQL-kyselyt, käytetään kyselyyn tallennettuihin entiteeteihin.

Mikä on lepotila?

Hibernate on kehys, jota voidaan käyttää Java-ohjelmointikielelle tarkoitettuun oliorelaatiomappaukseen. Tarkemmin sanottuna se on ORM-kirjasto (object-relational mapping), jota voidaan käyttää objektirelaatiomallin kuvaamiseen tavanomaiseen relaatiomalliin. Yksinkertaisesti sanottuna se luo kartoituksen Java-luokkien ja relaatiotietokantojen taulukoiden välille, myös Java-SQL-tietotyyppien välille. Hibernatea voidaan käyttää myös tietojen kyselyyn ja hakemiseen generoimalla SQL-kutsuja. Siksi ohjelmoija on vapautettu tulosjoukkojen manuaalisesta käsittelystä ja objektien muuntamisesta. Hibernate julkaistaan ilmaisena avoimena lähdekoodina GNU-lisenssillä. JPA API:n toteutus on saatavilla Hibernate 3.2:ssa ja uudemmissa versioissa. Gavin King on Hibernaten perustaja.

Mitä eroa on JPA:n ja lepotilan välillä?

JPA on kehys relaatiotietojen hallintaan Java-sovelluksissa, kun taas Hibernate on JPA:n erityinen toteutus (joten ihannetapauksessa JPA:ta ja Hibernatea ei voida suoraan verrata). Toisin sanoen Hibernate on yksi suosituimmista JPA:n toteuttavista kehyksistä. Hibernate toteuttaa JPA:n Hibernate Annotation- ja EntityManager-kirjastojen kautta, jotka on toteutettu Hibernate Core -kirjastojen päällä. Sekä EntityManager että Annotations noudattavat Hibernaten elinkaarta. Hibernate 3.5 tukee täysin uusinta JPA-versiota (JPA 2.0). JPA:n etuna on standardoitu käyttöliittymä, joten kehittäjäyhteisö tuntee sen paremmin kuin Hibernate. Toisa alta alkuperäisiä Hibernate-sovellusliittymiä voidaan pitää tehokkaampina, koska niiden ominaisuudet ovat JPA:n ominaisuudet.

Suositeltava: