Übersicht über das JPA-Feature (Java Persistence API)
Es gibt zwei 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 basiert auf dem Open-Source-Projekt EclipseLink.
jpa-2.0
Java™ Persistence API (JPA) 2.0 for 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 JPA 2.0. Mit OpenJPA als Basisimplementierung WebSphere Application Server nutzt Erweiterungen, um den Kunden von WebSphere Application Server weitere Features und Dienstprogramme bereitzustellen. Da JPA for WebSphere Application Server auf der Basis von OpenJPA entwickelt wurde, bleiben die OpenJPA-Funktionen, -Erweiterungen und -Konfigurationen von den WebSphere Application Server-Erweiterungen unberührt. Sie müssen keine Änderungen an den OpenJPA-Anwendungen vornehmen, um diese Anwendungen in WebSphere Application Server verwenden zu können.
JPA for WebSphere Application Server bietet mehr als Kompatibilität mit OpenJPA. JPA for WebSphere Application Server enthält einen Satz von Tools für die Entwicklung und Implementierung von Anwendungen. Zu den weiteren Features von JPA for WebSphere Application Server gehören die Unterstützung für DB2Optim pureQuery Runtime, DB2-Optimierungen, JPA-Zugriffsart, erweiterte Tracing-Funktionen, 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 für die Konfiguration 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. When eine spezielle Eigenschaft von JPA for WebSphere Application Server mit dem Präfix openjpa verwendet wird, wird eine Warnung protokolliert, die anzeigt, dass die ungültige Eigenschaft als wsjpa-Eigenschaft behandelt wird. Der umgekehrte Fall gilt nicht für das Präfix openjpa. In diesem Fall wird die ungültige Eigenschaft ignoriert.
jpa-2.1
Java Persistence API (JPA) 2.1 for 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 Einzelheiten zu diesen Features finden Sie in der Spezifikation JPA 2.1. Dieses Produkt stellt auch einen Teil der EclipseLink-APIs bereit. Weitere Einzelheiten finden Sie auf der Seite zu den Liberty-Features, Java Persistence API 2.1.
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 eine Implementierung der Spezifikation JPA 2.1 und stützt sich auf EclipseLink. 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.