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.
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.
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).
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.
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.0Składnik
jpa-2.0jest 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 opcjaservlet-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.1Składnik
jpa-2.1jest implementacją specyfikacji JPA 2.1 i jest wspierana przez EclipseLink. Ta funkcja jest kompatybilna tylko z innymi funkcjami środowiska Java EE 7. Jeśli opcjajpa-2.1jest 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.