Różnica między JPA a hibernacją

Różnica między JPA a hibernacją
Różnica między JPA a hibernacją

Wideo: Różnica między JPA a hibernacją

Wideo: Różnica między JPA a hibernacją
Wideo: NAJLEPSZE CYTATY Z GIER CZ.15 | RÓŻNICA MIĘDZY NAMI | JOHNNY SILVERHAND | CYBERPUNK 2077 2024, Listopad
Anonim

JPA a hibernacja

Prawie wszystkie aplikacje korporacyjne muszą regularnie uzyskiwać dostęp do relacyjnych baz danych. Jednak problemem, z którym borykano się we wcześniejszych technologiach (takich jak JDBC) było niedopasowanie impedancji (różnica między technologiami zorientowanymi obiektowo i relacyjnymi). Rozwiązanie tego problemu zostało wprowadzone poprzez wprowadzenie warstwy abstrakcyjnej zwanej warstwą Persistence, która hermetyzuje dostęp do bazy danych z logiki biznesowej. JPA (Java Persistence API) to framework dedykowany do zarządzania danymi relacyjnymi (z wykorzystaniem warstwy trwałości) w aplikacjach Java. Istnieje wielu dostawców implementacji JPA używanych w społeczności programistów Java. Hibernate jest najpopularniejszą taką implementacją JPA (DataNucleus, EclipseLink i OpenJPA to kilka innych). Najnowsza wersja JPA (JPA 2.0) jest w pełni obsługiwana przez Hibernate 3.5, który został wydany w marcu 2010.

Co to jest JPA?

JPA to framework do zarządzania danymi relacyjnymi dla Javy. Może być używany z aplikacjami wykorzystującymi JSE (Java Platform, Standard Edition) lub JEE (Java Platform, Enterprise Edition). Jego obecna wersja to JPA 2.0, wydana 10 grudnia 2009 r. JPA zastąpiła EJB 2.0 i EJB 1.1. Chociaż ziarna encji (w EJB) zapewniały obiekty trwałości, wielu programistów było przyzwyczajonych do wykorzystywania stosunkowo lekkich obiektów oferowanych przez DAO (Data Access Objects) i inne podobne frameworki. W rezultacie wprowadzono JPA, który uchwycił wiele fajnych funkcji wspomnianych powyżej frameworków.

Persistence zgodnie z opisem w JPA obejmuje API (zdefiniowane w javax).trwałość), JPQL (Java Platform, Enterprise Edition) oraz metadane wymagane dla obiektów relacyjnych. Stan jednostki trwałości jest zwykle utrwalany w tabeli. Instancje encji odpowiadają wierszom tabeli relacyjnej bazy danych. Metadane służą do wyrażania relacji między jednostkami. Adnotacje lub oddzielne pliki deskryptorów XML (wdrażane z aplikacją) służą do określania metadanych w klasach encji. JPQL, który jest podobny do zapytań SQL, służy do odpytywania przechowywanych jednostek.

Co to jest hibernacja?

Hibernate to framework, którego można używać do mapowania obiektowo-relacyjnego przeznaczonego dla języka programowania Java. Dokładniej, jest to biblioteka ORM (mapowanie obiektowo-relacyjne), której można użyć do odwzorowania modelu obiektowo-relacyjnego na konwencjonalny model relacyjny. Mówiąc prościej, tworzy mapowanie pomiędzy klasami Javy i tabelami w relacyjnych bazach danych, także pomiędzy typami danych Javy na SQL. Hibernate może być również używany do odpytywania i pobierania danych poprzez generowanie wywołań SQL. Dzięki temu programista jest zwolniony z ręcznej obsługi zestawów wynikowych i konwersji obiektów. Hibernate jest udostępniany jako darmowy framework o otwartym kodzie źródłowym, rozpowszechniany na licencji GNU. Implementacja interfejsu JPA API jest dostępna w Hibernate 3.2 i nowszych wersjach. Gavin King jest założycielem Hibernate.

Jaka jest różnica między JPA a Hibernacją?

JPA to framework do zarządzania danymi relacyjnymi w aplikacjach Java, podczas gdy Hibernate jest specyficzną implementacją JPA (więc idealnie, JPA i Hibernate nie mogą być bezpośrednio porównywane). Innymi słowy, Hibernate jest jednym z najpopularniejszych frameworków implementujących JPA. Hibernate implementuje JPA poprzez biblioteki Hibernate Annotation i EntityManager, które są zaimplementowane na bibliotekach Hibernate Core. Zarówno EntityManager, jak i Adnotacje podążają za cyklem życia Hibernate. Najnowsza wersja JPA (JPA 2.0) jest w pełni obsługiwana przez Hibernate 3.5. JPA ma tę zaletę, że ma ustandaryzowany interfejs, więc społeczność programistów będzie z nim bardziej zaznajomiona niż Hibernate. Z drugiej strony natywne interfejsy API Hibernate można uznać za bardziej zaawansowane, ponieważ ich funkcje są nadzbiorem funkcji JPA.

Zalecana: