logo

JPA vs. Hibernate

Co je JPA?

JPA (Java Persistence API) je specifikace jazyka Java, která se používá k přístupu, správě a zachování dat mezi objektem Java a relační databází. Je považován za standardní přístup pro objektově relační mapování.

JPA lze považovat za most mezi objektově orientovanými doménovými modely a relačními databázovými systémy. Protože jde o specifikaci, JPA sama o sobě neprovádí žádnou operaci. Vyžaduje tedy implementaci. Nástroje ORM jako Hibernate, TopLink a iBatis tedy implementují specifikace JPA pro perzistenci dat.


Co je Hibernate?

Hibernate je framework Java, který se používá k ukládání objektů Java v relačním databázovém systému. Je to open-source, lehký nástroj ORM (Object Relational Mapping).

Hibernate je implementace JPA. Dodržuje tedy společné standardy poskytované SPS.


Potřeba JPA

Jak jsme doposud viděli, JPA je specifikace. Poskytuje společný prototyp a funkčnost nástrojům ORM. Implementací stejné specifikace se všechny nástroje ORM (jako Hibernate, TopLink, iBatis) řídí běžnými standardy. Pokud v budoucnu budeme chtít přepnout naši aplikaci z jednoho nástroje ORM na jiný, můžeme to udělat snadno.


JPA vs. Hibernate

JPA Přezimovat
Java Persistence API (JPA) definuje správu relačních dat v aplikacích Java. Hibernate je nástroj Object-Relational Mapping (ORM), který se používá k uložení stavu Java objektu do databáze.
Je to jen specifikace. Různé nástroje ORM jej implementují pro perzistenci dat. Je to jedna z nejčastěji používaných implementací JPA.
Je definován v javax.perzistence balík. Je definován v org.hibernovat balík.
The EntityManagerFactory rozhraní se používá k interakci s továrnou správce entity pro jednotku perzistence. Poskytuje tedy správce entity. Používá SessionFactory rozhraní pro vytváření instancí relace.
Používá EntityManager rozhraní pro vytváření, čtení a odstraňování operací pro instance mapovaných tříd entit. Toto rozhraní spolupracuje s kontextem persistence. Používá Zasedání rozhraní pro vytváření, čtení a odstraňování operací pro instance mapovaných tříd entit. Chová se jako běhové rozhraní mezi aplikací Java a Hibernate.
Používá Java Persistence Query Language (JPQL) jako objektově orientovaný dotazovací jazyk pro provádění databázových operací. Používá Hibernate Query Language (HQL) jako objektově orientovaný dotazovací jazyk pro provádění databázových operací.