Übersicht über das JPA-Feature (Java Persistence API)

Es gibt drei JPA-Features, die Sie für Ihre Anwendung verwenden können. jpa-2.0 basiert auf dem Open-Source-Projekt Apache OpenJPA. jpa-2.1 und jpa-2.2 basieren auf dem Open-Source-Projekt EclipseLink.

Open Liberty Die neuesten Informationen zur Verwendung von JPA für den Zugriff auf und die persistente Speicherung von Daten in einer Datenbank für Mikroservices finden Sie im Handbuch Accessing and persisting data in microservices guide.

jpa-2.0

Java™ Persistence API (JPA) 2.0 für WebSphere Application Server basiert auf dem Open-Source-Projekt Apache OpenJPA 2.2.x .

Apache OpenJPA ist eine kompatible Implementierung der Spezifikationen JPA 1.0 und 2.0. Mit OpenJPA als Basisimplementierung verwendet WebSphere® Application Server Erweiterungen, um weitere Features und Dienstprogramme für WebSphere Application Server -Kunden bereitzustellen. Da JPA für WebSphere Application Server aus OpenJPA, erstellt wurde, sind alle Funktionen, Erweiterungen und Konfigurationen von OpenJPA von den Erweiterungen von WebSphere Application Server nicht betroffen. Sie müssen keine Änderungen an OpenJPA -Anwendungen vornehmen, um diese Anwendungen in WebSphere Application Serververwenden zu können.

JPA for WebSphere Application Server bietet mehr als Kompatibilität mit OpenJPA. JPA for WebSphere Application Server enthält eine Reihe von Tools für die Anwendungsentwicklung und -implementierung. Weitere Features von JPA for WebSphere Application Server sind Unterstützung für DB2®Optim pureQuery Runtime, DB2 -Optimierungen, JPA Access Intent, erweiterte Tracefunktionen, Befehlsscripts und übersetzte Nachrichtendateien. Der JPA-Provider für dieses Produkt ist com.ibm.websphere.persistence.PersistenceProviderImpl.

Apache OpenJPA unterstützt die Verwendung von Eigenschaften zum Konfigurieren der persistenten Umgebung. Sie können JPA for WebSphere Application Server -Eigenschaften mit dem Präfix openjpa oder wsjpa angeben. Für einen gemeinesamen Satz von Eigenschaften können Sie die Präfixe openjpa und wsjpa gemischt verwenden. Ausgenommen von dieser Regel sind wsjpa-spezifischen Konfigurationseingeschaften, die das Präfix wsjpa haben. Wenn eine JPA for WebSphere Application Server-spezifische Eigenschaft mit dem Präfix openjpa verwendet wird, wird eine Warnung protokolliert, die darauf hinweist, dass die fehlerhafte Eigenschaft als Eigenschaft wsjpa behandelt wird. Der umgekehrte Fall gilt nicht für das Präfix openjpa. In diesem Fall wird die unzulässige Eigenschaft ignoriert.

Stabilisiertes Feature: Das Feature jpa-2.0 wurde stabilisiert. Sie können das Feature jpa-2.0 weiterhin verwenden. Sie sollten jedoch die Verwendung eines aktuelleren JPA-Features in Betracht ziehen.

jpa-2.1

Java Persistence API (JPA) 2.1 für WebSphere Application Server basiert auf dem Open-Source-Projekt EclipseLink . EclipseLink ist die Referenzimplementierung für alle Versionen der JPA-Spezifikation. Der JPA-Provider für dieses Produkt ist org.eclipse.persistence.jpa.PersistenceProvider.

In der Spezifikation JPA 2.1 wurden neue Features hinzugefügt, die in der Spezifikation JPA 2.0 nicht verfügbar sind. Zu diesen Features gehören die folgenden:

  • Schemagenerierung
  • Methoden für die Typenkonvertierung
  • Entitätsdiagramme in Abfragen und Suchoperationen
  • Nicht synchronisierte Persistenzkontexte
  • Aufruf gespeicherter Prozeduren
  • Injektion in Entitätslistenerklassen
  • JPQL-Erweiterungen
  • Erweiterungen der Criteria-API
  • Zuordnung nativer Abfragen

Weitere Informationen zu diesen Features finden Sie in der Spezifikation JPA 2.1 . Dieses Produkt stellt auch einen Teil der EclipseLink-APIs bereit. Ausführliche Informationen hierzu finden Sie auf der Seite des Features Liberty unter Java Persistence API 2.1.

Anmerkung: JPA 2.1 ist abwärtskompatibel mit JPA 2.0.

jpa-2.2

Java Persistence API (JPA) 2.2 für WebSphere Application Server basiert auf dem Open-Source-Projekt EclipseLink . EclipseLink ist die Referenzimplementierung für alle Versionen der JPA-Spezifikation. Der JPA-Provider für dieses Produkt ist org.eclipse.persistence.jpa.PersistenceProvider.

Anmerkung: JPA 2.2 ist abwärtskompatibel mit JPA 2.1 und JPA 2.0.

Open Liberty Die neuesten Informationen zur Verwendung von JPA für den Zugriff auf und die persistente Speicherung von Daten in einer Datenbank für Mikroservices finden Sie im Handbuch Accessing and persisting data in microservices guide.

Kompatibilität der JPA-Features

jpa-2.0

Das Feature jpa-2.0 ist eine Implementierung der Spezifikation JPA 2.0 und stützt sich auf Apache OpenJPA. Dieses Feature ist ein Teil der Technologiefamilie Java Platform, Enterprise Edition (Java EE) 6, aber insofern speziell, als es mit anderen Java EE 7-Features kompatibel ist . Das Feature servlet-3.1, ein Java EE 7-Feature, wird beispielsweise mit dem Feature jpa-2.0 verwendet. Dies ermöglicht Anwendungen, den vorhandenen JPA-Provider beizubehalten, aber gleichzeitig die neuen Java EE 7-Features nutzen zu können.

jpa-2.1

Das Feature jpa-2.1 ist die Implementierung der Spezifikation JPA 2.1 und wird von EclipseLinkunterstützt. Dieses Feature ist nur mit anderen Java EE 7-Features kompatibel. Wenn Sie das Feature jpa-2.1 zusammen mit anderen Java EE 6-Features verwenden, wird der folgende Fehler in der Datei message.log ausgegeben.

CWWKF0033E: Die Singleton-Features com.ibm.websphere.appserver.javaeeCompatible-7.0 und com.ibm.websphere.appserver.javaeeCompatible-6.0 können nicht gleichzeitig geladen werden.  Die konfigurierten Features jpa-2.1 und servlet-3.0 enthalten mindestens ein Feature, das den Konflikt verursacht. Ihre Konfiguration wird nicht unterstützt.
Aktualisieren Sie die Datei server.xml und entfernen Sie die inkompatiblen Features.