Pourquoi et quand exécuter cette tâche
Vous devez configurer votre bundle JPA et les sources de données pour WebSphere Application Server avant d'accéder aux unités de persistance JPA à partir d'un autre bundle. C'est le cas par exemple d'un bundle l'applications Web qui consomme des entités JPA et affiche et manipule les données.
Conseil : Assurez-vous que votre fichier de persistance JPA contient des références à une API JTA (Java™ Transaction API) et une source de données non JTA.
JPA dispose de deux éléments de transaction pour accéder à une source de données :
- jta-data-source
- Le modèle de ressources JTA (Java Transaction API) dépend des transactions globales. Il est typiquement utilisé dans le cadre d'une façade de sessions EJB (Enterprise JavaBeans). Cette configuration permet au bean session de contrôler les contextes de transaction et de sécurité, alors que l'API JPA gère les mappages de
persistance. Dans ce cas, une fois accessible, l'application n'utilise pas l'interface EntityTransaction mais repose sur EntityManager enrôlée avec la transaction globale.
- non-jta-data-source
- L'élément de ressource non JTA est utilisé pour gérer une seule ressource en l'absence des transactions globales. L'élément de ressource non-JTA est typiquement utilisé dans le cadre d'une application Web ou d'un client d'application. L'application contrôle la transaction avec la source de données à l'aide de l'interface EntityTransaction.
Dans les fichiers persistence.xml d'une application OSGi, les éléments jta-data-source et non-jta-data-source accèdent aux sources de données par le biais d'une recherche JNDI (Java Naming and Directory Interface), une recherche JNDI sur le registre d'utilisateurs, ou via Blueprint.
Si les sources de données JTA et non JTA ne sont pas configurées dans le fichier persistence.xml, les sources de données JTA et non JTA par défaut configurées pour le serveur sont utilisées. Par défaut, les valeurs sont null. Certaines fonctions d'entité JPA
nécessitent qu'une source de données non JTA soit spécifiée. Par exemple, la génération automatique de l'identité d'une entité.