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.
Java i swing
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.
pełna forma
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. |