Verhaltensänderungen in Java Persistence API Version 2.1
Wenn Sie bereits das Feature jpa-2.0 für Ihre Anwendungen verwenden,
verwenden Sie das Feature jpa-2.0 weiterhin für Ihre vorhandenen Anwendungen, um Migrationsprobleme zu vermeiden. Für neue Anwendungen sollten Sie das Feature jpa-2.1 verwenden, das Ihnen die Verwendung der neuen Funktionen
ermöglicht, die in der Spezifikation JPA 2.1 verfügbar sind. Wenn Sie Ihre vorhandenen Anwendungen
vom Feature jpa-2.0 auf das Feature jpa-2.1 umstellen möchten, müssen Sie Ihre Anwendungen während des Migrationsprozesses möglicherweise
anpassen.
Unterschiede zwischen jpa-2.0 und jpa-2.1
Beachten Sie, dass einige bedeutende Unterschiede zwischen den Feature jpa-2.0 und
jpa-2.1 gibt. Sehen Sie sich die folgenden Informationen an:
- Name der PersistenceProvider-Klasse
jpa-2.0- IBM® -Provider:
com.ibm.websphere.persistence.PersistenceProviderImpl - OpenJPA -Provider:
org.apache.openjpa.persistence.PersistenceProviderImpl
- IBM® -Provider:
- Caching-Verhalten
jpa-2.0: Das Caching ist standardmäßig inaktiviert. Wenn Ihre Anwendung einen L2-Cache verwenden muss, müssen Sie diesen explizit aktivieren.- Unterschiede bei Erweiterungen/Weaving
jpa-2.0: OpenJPA setzt die Erweiterung von Entitäten voraus. Weitere Informationen finden Sie in der Produktdokumentation unter Enhancement of JPA entities for JPA 2.0 .
- Unterschiede bei der Verwendung von Datenquellen
Das Feature
jpa-2.0verwendet die Nicht-JTA-Datenquelle nur sparsam. Deshalb sind nur wenige Nicht-JTA-Datenquellenverbindungen erforderlich, wenn Sie eine Anwendung optimieren.
In OpenJPA verfügbare JPA 2.1-Features
OpenJPA, der
JPA 2.0-Provider, enthält Features, die ähnlich wie die neuen
JPA 2.1-Features funktionieren. Wenn Sie also eine vorhandene Anwendung haben, die das Feature
jpa-2.0 verwendet, und einige der
JPA 2.1-Features verwenden möchten, müssen Sie die Umstellung auf das Feature jpa-2.1 nicht durchführen. Stattdessen können Sie das dem neuen Feature funktional entsprechende Feature verwenden, das von OpenJPA bereitgestellt wird. Einige der in OpenJPA verfügbaren wichtigsten JPA 2.1-Features sind im Folgenden beschrieben:
- Schemagenerierung
Mit diesem Feature können Sie DDL generieren oder direkt mit der Datenbank interagieren, um Tabellenschemas basierend auf der JPA-Entitätsdefinition zu definieren. Weitere Informationen finden Sie im Abschnitt 9.4 der Spezifikation JPA 2.1.
Funktional entsprechendes OpenJPA -Feature: Schema Mapper
- Entitätsdiagramme
Mit diesem Feature können Sie den Abruf oder die Verarbeitung eines Graphen von Entitätsobjekten angeben. Weitere Informationen finden Sie im Abschnitt 3.7 der Spezifikation JPA 2.1.
Funktional entsprechendes OpenJPA -Feature: FetchPlan und FetchGroup
- Abfragen gespeicherter Prozeduren
Mit diesem Feature können Sie Prozeduren aufrufen, die in Datenbanken gespeichert sind. Weitere Informationen finden Sie im Abschnitt 3.10.17 der Spezifikation JPA 2.1.
Funktional entsprechendes Feature OpenJPA : Abfrageaufruf
- Konvertierung von Basisattributtypen
Mit diesem Feature können Sie Basisattributtypen aus der Attributentitätsdarstellung in die Datenbankdarstellung konvertieren und umgekehrt. Weitere Informationen finden Sie im Abschnitt 3.8 der Spezifikation JPA 2.1.
Funktional entsprechendes Feature OpenJPA : Externalizer-Feature
- Annotationen @Index und @ForeignKey
Weitere Informationen finden Sie in den Abschnitten 11.1.19 und 11.1.23 der Spezifikation JPA 2.1.
OpenJPA gleichwertige Funktion: OpenJPA's @Index und @ForeignKey.
- Methoden des Dienstprogramms unwrap für EntityManager, Cache
Weitere Informationen finden Sie in den Abschnitten 3.1.1 und 7.10 der Spezifikation JPA 2.1.
OpenJPA entsprechende Funktionen: EntityManagerImpl.unwrap() und OpenJPAPersistence.cast ().
- Objekterstellung bei der Zuordnung von Ergebnissen nativer SQL
Weitere Informationen finden Sie im Abschnitt 3.10.16.2.2 der Spezifikation JPA 2.1.
Funktional entsprechendes OpenJPA -Feature: Objekt ResultShape .