logo

JPA prieš Hibernate

Kas yra JPA?

JPA (Java Persistence API) yra Java specifikacija, kuri naudojama pasiekti, valdyti ir išlaikyti duomenis tarp Java objekto ir reliacinės duomenų bazės. Jis laikomas standartiniu objektų reliacinio žemėlapių sudarymo metodu.

JPA gali būti laikomas tiltu tarp objektinių domenų modelių ir reliacinių duomenų bazių sistemų. Kadangi JPA yra specifikacija, ji pati neatlieka jokios operacijos. Taigi tai reikalauja įgyvendinimo. Taigi ORM įrankiai, tokie kaip „Hibernate“, „TopLink“ ir „iBatis“, įgyvendina JPA duomenų išlikimo specifikacijas.


Kas yra Hibernate?

Hibernate yra „Java“ sistema, naudojama „Java“ objektams saugoti reliacinėje duomenų bazių sistemoje. Tai atviro kodo, lengvas, ORM (Object Relational Mapping) įrankis.

Hibernate yra JPA įgyvendinimas. Taigi, jis atitinka bendrus JPA pateiktus standartus.


Reikia JPA

Kaip matėme iki šiol, JPA yra specifikacija. Tai suteikia bendrą prototipą ir funkcionalumą ORM įrankiams. Įdiegę tą pačią specifikaciją, visi ORM įrankiai (pvz., Hibernate, TopLink, iBatis) atitinka bendrus standartus. Ateityje, jei norime perjungti savo programą iš vieno ORM įrankio į kitą, galime tai padaryti lengvai.


JPA prieš Hibernate

JPA Užmigti
Java Persistence API (JPA) apibrėžia reliacinių duomenų tvarkymą Java programose. Hibernate yra objektų santykio atvaizdavimo (ORM) įrankis, naudojamas Java objekto būsenai išsaugoti duomenų bazėje.
Tai tik specifikacija. Įvairūs ORM įrankiai jį įgyvendina duomenų išlikimui. Tai vienas iš dažniausiai naudojamų JPA įgyvendinimo būdų.
Jis apibrėžtas javax.patvarumas paketą. Jis apibrėžtas org.hibernate paketą.
The EntityManagerFactory sąsaja naudojama sąveikai su patvarumo vieneto objektų tvarkyklės gamykla. Taigi jis suteikia subjekto valdytoją. Tai naudoja „SessionFactory“. sąsaja seanso egzempliorių kūrimui.
Tai naudoja EntityManager sąsaja, skirta susietų objektų klasių egzempliorių operacijoms kurti, skaityti ir ištrinti. Ši sąsaja sąveikauja su patvarumo kontekstu. Tai naudoja Sesija sąsaja, skirta susietų objektų klasių egzempliorių operacijoms kurti, skaityti ir ištrinti. Jis veikia kaip vykdymo sąsaja tarp Java programos ir Hibernate.
Tai naudoja Java nuolatinės užklausos kalba (JPQL) kaip į objektą orientuota užklausų kalba duomenų bazės operacijoms atlikti. Tai naudoja Hibernate užklausų kalba (HQL) kaip į objektą orientuota užklausų kalba duomenų bazės operacijoms atlikti.