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í. |