JPA kontra Hibernacja

Co to jest JPA?

JPA (Java Persistence API) to specyfikacja języka Java używana do uzyskiwania dostępu do danych, zarządzania nimi i utrzymywania ich między obiektem Java a relacyjną bazą danych. Jest uważane za standardowe podejście do mapowania obiektowo-relacyjnego.

JPA można postrzegać jako pomost pomiędzy obiektowymi modelami domen a systemami relacyjnych baz danych. Będąc specyfikacją, JPA nie wykonuje samodzielnie żadnej operacji. Wymaga więc wdrożenia. Dlatego narzędzia ORM, takie jak Hibernate, TopLink i iBatis, implementują specyfikacje JPA dotyczące trwałości danych.


Co to jest hibernacja?

Hibernacja to framework Java używany do przechowywania obiektów Java w systemie relacyjnej bazy danych. Jest to lekkie narzędzie ORM (Object Relational Mapping) o otwartym kodzie źródłowym.

Hibernacja jest implementacją JPA. Jest zatem zgodny ze wspólnymi standardami dostarczonymi przez WZP.


Potrzeba WZP

Jak widzieliśmy do tej pory, JPA jest specyfikacją. Zapewnia wspólny prototyp i funkcjonalność narzędziom ORM. Implementując tę ​​samą specyfikację, wszystkie narzędzia ORM (takie jak Hibernate, TopLink, iBatis) działają zgodnie ze wspólnymi standardami. W przyszłości, jeśli będziemy chcieli przenieść naszą aplikację z jednego narzędzia ORM na drugie, możemy to zrobić bez problemu.


JPA kontra Hibernacja

JPA Hibernować
Java Persistence API (JPA) definiuje zarządzanie danymi relacyjnymi w aplikacjach Java. Hibernate to narzędzie do mapowania obiektowo-relacyjnego (ORM), które służy do zapisywania stanu obiektu Java w bazie danych.
To tylko specyfikacja. Różne narzędzia ORM implementują go w celu zapewnienia trwałości danych. Jest to jedna z najczęściej używanych implementacji JPA.
Jest zdefiniowany w javax.persistence pakiet. Jest zdefiniowany w org.hibernate pakiet.
The Fabryka EntityManager interfejs służy do interakcji z fabryką menedżerów encji dla jednostki trwałości. W ten sposób zapewnia menedżera podmiotu. To używa Fabryka sesji interfejs do tworzenia instancji sesji.
To używa Menedżer jednostek interfejs do tworzenia, odczytywania i usuwania operacji dla instancji mapowanych klas jednostek. Interfejs ten współdziała z kontekstem trwałości. To używa Sesja interfejs do tworzenia, odczytywania i usuwania operacji dla instancji mapowanych klas jednostek. Zachowuje się jak interfejs wykonawczy pomiędzy aplikacją Java a Hibernacją.
To używa Język zapytań o trwałość Java (JPQL) jako obiektowy język zapytań do wykonywania operacji na bazach danych. To używa Język zapytań hibernacji (HQL) jako obiektowy język zapytań do wykonywania operacji na bazach danych.