Przegląd funkcji interfejsu API Java Persistence (JPA)

Istnieją trzy funkcje JPA, których można użyć dla aplikacji. Produkt jpa-2.0 jest oparty na projekcie open source Apache OpenJPA . Produkty jpa-2.1 i jpa-2.2 są budowane w ramach projektu Open Source EclipseLink.

Open Liberty Najnowsze informacje na temat używania interfejsu JPA do uzyskiwania dostępu do bazy danych i utrwalania ich w bazie danych dla mikrousług znajdują się w publikacji Uzyskiwanie dostępu do danych i utrwalanie danych w podręczniku mikrousług.

jpa-2.0

Interfejs Java™ Persistence API (JPA) 2.0 dla serwera WebSphere Application Server jest zbudowany w ramach projektu open source Apache OpenJPA 2.2.x .

Apache OpenJPA jest zgodną implementacją specyfikacji JPA 1.0 i 2.0. Korzystając z usługi OpenJPA jako podstawowej implementacji, serwer WebSphere® Application Server korzysta z rozszerzeń w celu udostępnienia większej liczby funkcji i programów narzędziowych dla klientów WebSphere Application Server . Ze względu na to, że interfejs JPA dla serwera WebSphere Application Server jest zbudowany z interfejsu OpenJPA, wszystkie funkcje, rozszerzenia i konfiguracje interfejsu OpenJPA nie mają wpływu na rozszerzenia serwera WebSphere Application Server . Nie ma potrzeby wprowadzania zmian w aplikacjach OpenJPA w celu użycia tych aplikacji na serwerze WebSphere Application Server.

Interfejs JPA dla serwera WebSphere Application Server zapewnia więcej niż kompatybilność z interfejsem OpenJPA. Interfejs JPA dla serwera WebSphere Application Server zawiera zestaw narzędzi do programowania aplikacji i wdrażania. Inne funkcje interfejsu JPA dla serwera WebSphere Application Server obejmują obsługę produktu DB2®Optim pureQuery Runtime, optymalizacje DB2 , funkcje Intent dostępu JPA, rozszerzone możliwości śledzenia, skrypty komend i przetłumaczone pliki komunikatów. Dostawcą JPA dla tego produktu jest com.ibm.websphere.persistence.PersistenceProviderImpl.

Interfejs Apache OpenJPA umożliwia korzystanie z właściwości w celu skonfigurowania środowiska trwałego. Właściwości JPA dla serwera WebSphere Application Server można określić za pomocą przedrostka openjpa lub wsjpa . Przedrostki openjpa i wsjpa można mieszać w taki sposób, aby dla wspólnego zestawu właściwości były używane. Wyjątkami od reguły są właściwości konfiguracyjne specyficzne dla produktu wsjpa , które korzystają z przedrostka wsjpa . Jeśli z przedrostkiem openjpa jest używana właściwość specyficzna dla interfejsu JPA dla produktu WebSphere Application Server, rejestrowany jest komunikat ostrzegawczy informujący, że właściwość naruszania jest traktowana jako właściwość wsjpa . Wartość odwrotna nie jest prawdziwa dla przedrostka openjpa . W takim przypadku właściwość naruszania jest ignorowana.

Funkcja stabilizowana: składnik jpa-2.0 jest stabilizowany. Można kontynuować korzystanie z opcji jpa-2.0 . Należy jednak rozważyć użycie późniejszej opcji JPA.

jpa-2.1

Interfejs API Java Persistence API (JPA) 2.1 dla serwera WebSphere Application Server jest zbudowany w projekcie Open Source EclipseLink. EclipseLink jest implementacją referencyjną dla wszystkich wersji specyfikacji JPA. Dostawcą JPA dla tego produktu jest org.eclipse.persistence.jpa.PersistenceProvider.

Specyfikacja JPA 2.1 dodała nowe funkcje, które nie są dostępne w specyfikacji JPA 2.0. Są to:

  • generowanie schematu
  • Metody konwersji typów
  • Wykresy jednostek w zapytaniach i operacjach wyszukiwania
  • Niezsynchronizowane konteksty trwałości
  • Wywołanie procedury składowanej
  • Wstrzykiwanie do klas obiektów nasłuchiwania obiektów
  • Rozszerzenia JPQL
  • Udoskonalenia interfejsu API kryteriów
  • Odwzorowywanie zapytań rodzimych

Więcej informacji na temat tych funkcji można znaleźć w specyfikacji JPA 2.1 . Ten produkt udostępnia również podzbiór interfejsów API EclipseLink. Szczegółowe informacje na ten temat zawiera strona opcji Liberty ( Java Persistence API 2.1).

Uwaga: JPA 2.1 jest kompatybilny wstecz ze standardem JPA 2.0.

jpa-2.2

Interfejs API Java Persistence API (JPA) 2.2 dla serwera WebSphere Application Server jest zbudowany w projekcie Open Source EclipseLink. EclipseLink jest implementacją referencyjną dla wszystkich wersji specyfikacji JPA. Dostawcą JPA dla tego produktu jest org.eclipse.persistence.jpa.PersistenceProvider.

Uwaga: JPA 2.2 jest kompatybilny wstecz z JPA 2.1 i JPA 2.0.

Open Liberty Najnowsze informacje na temat używania interfejsu JPA do uzyskiwania dostępu do bazy danych i utrwalania ich w bazie danych dla mikrousług znajdują się w publikacji Uzyskiwanie dostępu do danych i utrwalanie danych w podręczniku mikrousług.

Kompatybilność opcji JPA

jpa-2.0

Składnik jpa-2.0 jest implementacją specyfikacji JPA 2.0 i jest wspierana przez interfejs Apache OpenJPA. Ta funkcja jest częścią rodziny technologii Java Platform, Enterprise Edition (Java EE) 6, ale jest ona specjalna, ponieważ jest kompatybilna z innymi funkcjami środowiska Java EE 7. Na przykład opcja servlet-3.1 ( Java EE 7) jest używana z opcją jpa-2.0 . Dzięki temu aplikacje mogą pozostać przy użyciu istniejącego dostawcy JPA, ale także korzystać z nowych funkcji środowiska Java EE 7.

jpa-2.1

Składnik jpa-2.1 jest implementacją specyfikacji JPA 2.1 i jest wspierana przez EclipseLink. Ta funkcja jest kompatybilna tylko z innymi funkcjami środowiska Java EE 7. Jeśli opcja jpa-2.1 jest używana z innymi funkcjami środowiska Java EE 6, do pliku message.log jest emitowany następujący błąd.

CWWKF0033E: W tym samym czasie nie można załadować singletowych funkcji com.ibm.websphere.appserver.javaeeCompatible-7.0 i com.ibm.websphere.appserver.javaeeCompatible-6.0 .  Skonfigurowane opcje jpa-2.1 i servlet-3.0 zawierają jedną lub więcej funkcji, które powodują konflikt. Konfiguracja nie jest obsługiwana. Zaktualizuj plik server.xml w celu usunięcia niezgodnych składników.