Informationen zu diesem Vorgang
Sie müssen Ihr JPA-Bundle konfigurieren und die Datenquellen zu
WebSphere Application
Server hinzufügen, um auf JPA-Persistenzeinheiten eines anderen Bundles zugreifen zu können, z. B. eines
Webanwendungsbundles, das JPA-Entitäten konsumiert und Daten anzeigt bzw. bearbeitet.
Tipp: Stellen Sie sicher, dass Ihre JPA-Persistenzdatei Referenzen auf eine JTA-Datenquelle
(Java™ Transaction API) und eine Nicht-JTA-Datenquelle enthält.
In JPA gibt es zwei transaktionsorientierte Muster für den Zugriff auf eine Datenquelle:
- jta-data-source
- Das Muster für JTA-Ressourcen (Java Transaction API)
hängt von globalen Transaktionen ab. Das JTA-Ressourcenmuster wird in der Regel
im Geltungsbereich einer EJB-Sitzungsfassade (Enterprise JavaBeans) eingesetzt.
Bei dieser Konfiguration kann die Session-Bean den Transaktions- und Sicherheitskontext
steuern, während JPA die Persistenzzuordnungen durchführt. In diesem Fall verwendet die Anwendung nicht die Schnittstelle
EntityTransaction, sondern
greift auf den für die globale Transaktion registrierten EntityManager zurück.
- non-jta-data-source
- Das Muster für Nicht-JTA-Ressourcen wird für eine Einzelressource verwendet, wenn keine globalen Transaktionen
vorliegen. Das Nicht-JTA-Ressourcenmuster wird in der Regel im Geltungsbereich einer Webanwendung oder eines Anwendungsclients eingesetzt.
Die Anwendung steuert die Transaktion mit der Datenquelle über die Schnittstelle
EntityTransaction.
In persistence.xml-Dateien für eine
OSGi-Anwendung greifen die Elemente jta-data-source und non-jta-data-source mit einer JNDI-Suche
(Java Naming and Directory
Interface), einer JNDI-Suche in der Service-Registry oder über Blueprint
auf die Datenquellen zu.
Wenn die JTA- und Nicht-JTA-Datenquellen nicht in der Datei
persistence.xml konfiguriert sind, werden die für den Server konfigurierten
JTA- und Nicht-JTA-Standarddatenquellen verwendet. Der Standardwert ist jeweils null. Einige Features für JPA-Entitäten erfordern, dass eine
Nicht-JTA-Datenquelle angegeben ist. Dies ist beispielsweise bei der automatischen ID-Generierung für Entitäten der Fall.