Jakarta Persistence

Enterprise BeansEdit

Specyfikacja EJB 3.0 (sama będąca częścią platformy Java EE 5) zawierała definicję Java Persistence API. Jednakże, użytkownicy końcowi nie potrzebują kontenera EJB lub serwera aplikacji Java EE, aby uruchamiać aplikacje, które używają tego API. Przyszłe wersje Java Persistence API będą zdefiniowane w oddzielnym JSR i specyfikacji, a nie w EJB JSR/specyfikacji.

Java Persistence API zastępuje rozwiązanie persistence z EJB 2.0 CMP (Container Managed Persistence).

Java Data Objects APIEdit

Główny artykuł: Java Data Objects

Java Persistence API został opracowany częściowo w celu ujednolicenia Java Data Objects API, oraz EJB 2.0 Container Managed Persistence (CMP) API. Od 2009 roku większość produktów wspierających każde z tych API wspiera Java Persistence API.

Java Persistence API określa persystencję tylko dla relacyjnych systemów zarządzania bazami danych. To znaczy, JPA skupia się na mapowaniu obiektowo-relacyjnym (ORM) (zauważ, że istnieją dostawcy JPA, którzy obsługują inne modele baz danych poza relacyjnymi bazami danych, ale jest to poza zakresem tego, do czego JPA zostało zaprojektowane). Odnieś się do JPA 2 spec sekcja 1 wprowadzenie w celu wyjaśnienia roli JPA, która stwierdza bardzo wyraźnie „Technicznym celem tej pracy jest zapewnienie obiektu/relacyjnego odwzorowania dla programisty aplikacji Java używającego modelu domeny Java do zarządzania relacyjną bazą danych.”

Specyfikacja Java Data Objects wspiera ORM, jak również persystencję do innych typów modeli baz danych, na przykład baz danych z płaskimi plikami i baz danych NoSQL, w tym baz danych dokumentów, baz danych grafów, jak również dosłownie każdego innego wyobrażalnego magazynu danych.

Service Data Object APIEdit

Główny artykuł: Service Data Objects

Projektanci Java Persistence API mieli na celu zapewnienie relacyjnej trwałości, z wieloma kluczowymi obszarami zaczerpniętymi z narzędzi mapowania obiektowo-relacyjnego, takich jak Hibernate i TopLink. Java Persistence API udoskonaliła i zastąpiła EJB 2.0, czego dowodem jest włączenie jej do EJB 3.0. Service Data Objects (SDO) API (JSR 235) ma zupełnie inny cel niż Java Persistence API i jest uważany za komplementarny. SDO API jest przeznaczony dla architektur zorientowanych na usługi, wielu formatów danych, a nie tylko danych relacyjnych, i wielu języków programowania. Java Community Process zarządza wersją Java SDO API; wersja C++ SDO API jest zarządzana przez OASIS.

HibernateEdit

Main article: Hibernate (framework)

Hibernate zapewnia open source’owy framework mapowania obiektowo-relacyjnego dla Javy. Wersje 3.2 i późniejsze zapewniają implementację dla Java Persistence API. Gavin King założył projekt Hibernate. Reprezentował on JBoss w JSR 220, grupie ekspertów JCP, której zadaniem jest rozwój JPA. Doprowadziło to do ciągłych kontrowersji i spekulacji na temat relacji pomiędzy JPA i Hibernate. Firma Sun Microsystems stwierdziła, że pomysły pochodzą z kilku frameworków, w tym Hibernate i Java Data Objects.

Spring Data JPAEdit

Wdrożenie abstrakcji repozytorium, która jest kluczowym elementem Domain-Driven Design opartego na frameworku aplikacji Java Spring. Transparentnie wspiera wszystkie dostępne implementacje JPA i obsługuje operacje CRUD oraz wygodne wykonywanie zapytań do bazy danych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *