Rozdiel medzi JPA a Hibernate

Rozdiel medzi JPA a Hibernate
Rozdiel medzi JPA a Hibernate

Video: Rozdiel medzi JPA a Hibernate

Video: Rozdiel medzi JPA a Hibernate
Video: Death Stranding Обзор | Полный Разбор | Хидэо Кодзима | Мнение | Впечатление 2024, November
Anonim

JPA vs. Hibernate

Takmer všetky podnikové aplikácie musia pravidelne pristupovať k relačným databázam. Ale problémom, ktorému čelili staršie technológie (ako JDBC), bol nesúlad impedancie (rozdiel medzi objektovo orientovanými a relačnými technológiami). Riešenie tohto problému bolo predstavené zavedením abstraktnej vrstvy s názvom Persistence layer, ktorá zahŕňa prístup k databáze z obchodnej logiky. JPA (Java Persistence API) je rámec určený na správu relačných údajov (pomocou vrstvy perzistencie) v aplikáciách Java. V komunite vývojárov Java sa používa veľa implementácií JPA od dodávateľov. Hibernate je najpopulárnejšia takáto implementácia JPA (DataNucleus, EclipseLink a OpenJPA sú niektoré ďalšie). Najnovšia verzia JPA (JPA 2.0) je plne podporovaná Hibernate 3.5, ktorá bola vydaná v marci 2010.

Čo je JPA?

JPA je rámec pre správu relačných údajov pre Java. Dá sa použiť s aplikáciami využívajúcimi JSE (Java Platform, Standard Edition) alebo JEE (Java Platform, Enterprise Edition). Jeho aktuálna verzia je JPA 2.0, ktorá bola vydaná 10. decembra 2009. JPA nahradila EJB 2.0 a EJB 1.1 entity beans (ktoré boli silne kritizované za ťažkú váhu komunitou vývojárov Java). Hoci entity beans (v EJB) poskytovali perzistentné objekty, mnohí vývojári boli zvyknutí využívať relatívne ľahké objekty, ktoré ponúka DAO (Data Access Objects) a iné podobné rámce. V dôsledku toho bol predstavený JPA, ktorý zachytil mnohé z úhľadných funkcií rámcov uvedených vyššie.

Perzistencia, ako je popísaná v JPA, pokrýva API (definované v javax.perzistencia), JPQL (Java Platform, Enterprise Edition) a metaúdaje požadované pre relačné objekty. Stav entity pretrvávania sa zvyčajne uchováva v tabuľke. Inštancie entity zodpovedajú riadkom tabuľky relačnej databázy. Metadáta sa používajú na vyjadrenie vzťahov medzi entitami. Na špecifikáciu metadát v triedach entít sa používajú anotácie alebo samostatné súbory deskriptorov XML (nasadené s aplikáciou). JPQL, ktorý je podobný dopytom SQL, sa používa na dopytovanie uložených entít.

Čo je hibernácia?

Hibernate je rámec, ktorý možno použiť na objektovo-relačné mapovanie určené pre programovací jazyk Java. Konkrétnejšie ide o knižnicu ORM (object-relational mapping), ktorú možno použiť na mapovanie objektovo-relačného modelu do konvenčného relačného modelu. Zjednodušene povedané, vytvára mapovanie medzi Java triedami a tabuľkami v relačných databázach, tiež medzi Java až SQL dátovými typmi. Režim dlhodobého spánku možno použiť aj na dopytovanie a získavanie údajov generovaním volaní SQL. Preto je programátor odbremenený od ručnej manipulácie so súbormi výsledkov a konverzie objektov. Hibernate je vydaný ako bezplatný a open source framework distribuovaný pod licenciou GNU. Implementácia pre JPA API je poskytovaná v Hibernate 3.2 a novších verziách. Gavin King je zakladateľ Hibernate.

Aký je rozdiel medzi JPA a Hibernate?

JPA je rámec pre správu relačných údajov v aplikáciách Java, zatiaľ čo Hibernate je špecifická implementácia JPA (takže v ideálnom prípade nemožno JPA a Hibernate priamo porovnávať). Inými slovami, Hibernate je jedným z najpopulárnejších rámcov, ktoré implementujú JPA. Hibernate implementuje JPA prostredníctvom knižníc Hibernate Annotation a EntityManager, ktoré sú implementované nad knižnicami Hibernate Core. EntityManager aj anotácie sledujú životný cyklus Hibernate. Najnovšia verzia JPA (JPA 2.0) je plne podporovaná Hibernate 3.5. JPA má výhodu v tom, že má rozhranie, ktoré je štandardizované, takže komunita vývojárov ho bude poznať viac ako Hibernate. Na druhej strane, natívne rozhrania Hibernate API možno považovať za výkonnejšie, pretože ich funkcie sú nadmnožinou funkcií JPA.

Odporúča: