[8.5.5.6 oder höher]

Änderungen beim Verhalten von Java Persistence API 2.1

Wenn Sie bereits das Feature jpa-2.0 für Ihre Anwendungen verwenden, sollten Sie dieses weiterhin für Ihre vorhandenen Anwendungen verwenden, 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

Die Features jpa-2.0 und jpa-2.1 weisen die folgenden wichtigen Unterschiede auf, die Sie beachten müssen:

Name der PersistenceProvider-Klasse
jpa-2.0
  • IBM® Provider: com.ibm.websphere.persistence.PersistenceProviderImpl
  • OpenJPA-Provider: org.apache.openjpa.persistence.PersistenceProviderImpl
jpa-2.1
  • org.eclipse.persistence.jpa.PersistenceProvider
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.

jpa-2.1: Standardmäßig sind im EclipseLink-Provider der L2-Cache und QueryCache aktiviert. Sie müssen sicherstellen, dass diese Einstellung die beste Option für Ihre Anwendungen ist. Wenn Sie in einer verteilten Umgebung arbeiten, z. B. in einem Cluster, müssen Sie den Cache inaktivieren oder sich darüber im Klaren sein, dass verschiedene Knoten verschiedene Daten haben können.

Unterschiede bei Erweiterungen/Weaving

jpa-2.0: OpenJPA setzt die Erweiterung von Entitäten voraus. Weitere Informationen finden Sie unter Erweiterung von JPA-Entitäten.

jpa-2.1: EclipseLink arbeitet mit nicht erweiterten Entitäten. WebSphere Application Server unterstützt eine statische Erweiterung.

Einige Features sind möglicherweise nicht verfügbar, wie z. B. verzögertes Laden und gewisse Leistungssteigerungen.

  • Wenn Entitätsklassen für die Verwendung mit dem Provider jpa-2.0 (OpenJPA) statisch erweitert wurden, müssen die Klassen vor der Verwendung des Providers jpa-2.1 neu kompiliert werden.
Unterschiede bei der Verwendung von Datenquellen

Das Feature jpa-2.0 verwendet die Nicht-JTA-Datenquelle nur sparsam. Deshalb sind nur wenige Nicht-JTA-Datenquellenverbindungen erforderlich, wenn Sie eine Anwendung optimieren.

Der Provider jpa-2.1 verwendet eine Nicht-JTA-Datenquellenverbindung für das Lesen von Daten, wenn keine Transaktion aktiv ist. Das bedeutet, dass die Verbindungspools für Nicht-JTA-Datenquellen größer sein müssen, wenn Sie dieses Feature verwenden.

Weitere Unterschiede zwischen den beiden JPA-Providern sind auf der Webseite mit der Veröffentlichung OpenJPA -> EclipseLink Migration Guide beschrieben.

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 neuen 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

Dieses Feature ermöglicht Ihnen, DDL zu generieren und direkt mit der Datenbank zu 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: Schemamapper

Entitätsdiagramme

Dieses Feature ermöglicht Ihnen, den Abruf und die Verarbeitung eines Diagramms von Entitätsobjekten festzulegen. Weitere Informationen finden Sie im Abschnitt 3.7 der Spezifikation JPA 2.1.

Funktional entsprechendes OpenJPA-Feature: FetchPlan und FetchGroup

Abfragen gespeicherter Prozeduren

Dieses Feature ermöglicht Ihnen, in Datenbanken gespeicherte Prozeduren aufzurufen. Weitere Informationen finden Sie in Abschnitt 3.10.17 der Spezifikation JPA 2.1.

Funktional entsprechendes OpenJPA-Feature: Abfrageaufruf

Konvertierung von Basisattributtypen

Dieses Feature ermöglicht Ihnen die Konvertierung von Basisattributtypen aus der Attributentitätsdarstellung in die Datenbankdarstellung und umgekehrt. Weitere Informationen finden Sie im Abschnitt 3.8 der Spezifikation JPA 2.1.

Funktional entsprechendes OpenJPA-Feature: 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.

Funktional entsprechendes OpenJPA-Feature: @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.

Funktional entsprechende OpenJPA-Features: 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


Symbol das den Typ des Artikels anzeigt. Konzeptartikel

Nutzungsbedingungen für Information Center | Feedback


Symbol für Zeitmarke Letzte Aktualisierung: 25.08.2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=cwlp_jpa21_behavior
Dateiname: cwlp_jpa21_behavior.html