
![[8.5.5.6 ou ultérieure]](../ng_v8556.gif)
Présentation de la fonction Java Persistence API (JPA)
Deux fonctions JPA peuvent être utilisées pour votre application. La fonction jpa-2.0 repose sur le projet open source Apache OpenJPA. La fonction jpa-2.1 repose sur le projet open source EclipseLink.
jpa-2.0
Java™ Persistence API (JPA) 2.0 for WebSphere Application Server repose sur le projet open source Apache OpenJPA 2.2.x.
Apache OpenJPA est une implémentation conforme des spécifications JPA 1.0 et 2.0. Avec OpenJPA comme implémentation de base, WebSphere Application Server emploie des extensions pour fournir des fonctions et des utilitaires supplémentaires aux clients de WebSphere Application Server. Etant donné que JPA pour WebSphere Application Server repose sur OpenJPA, les extensions de WebSphere Application Server n'ont aucun impact sur les fonctions, extensions et configurations OpenJPA. Il n'est pas nécessaire de modifier les applications OpenJPA pour pouvoir les utiliser dans WebSphere Application Server.
JPA pour WebSphere Application Server ne se limite pas à assurer la compatibilité avec OpenJPA. JPA pour WebSphere Application Server comporte un ensemble d'outils destinés au développement et au déploiement d'applications. D'autres fonctions de JPA pour WebSphere Application Server incluent la prise en charge de DB2Optim pureQuery Runtime, des optimisations DB2, JPA Access Intent, des fonctionnalités de suivi avancées, des scripts de commande et des fichiers de messages traduits. Le fournisseur de JPA de ce produit est com.ibm.websphere.persistence.PersistenceProviderImpl.
Apache OpenJPA prend en charge l'utilisation de propriétés pour configurer l'environnement persistant. Vous pouvez spécifier les propriétés de JPA pour WebSphere Application Server avoir le préfixe openjpa ou le préfixe wsjpa. Vous pouvez mélanger les préfixes openjpa et wsjpa comme vous le souhaitez pour obtenir un ensemble commun de propriétés. Les propriétés de configuration spécifiques wsjpa font exception à la règle car elles utilisent le préfixe wsjpa. Lorsqu'une propriété spécifique à JPA pour WebSphere Application Server est utilisée avec le préfixe openjpa, un message d'avertissement est consigné pour signaler que la propriété en infraction est traitée comme une propriété wsjpa. Le contraire ne s'applique pas au préfixe openjpa. Dans ce cas, la propriété en infraction est ignorée.
jpa-2.1
Java Persistence API (JPA) 2.1 for WebSphere Application Server repose sur le projet open source EclipseLink. EclipseLink est l'implémentation de référence pour toutes les versions de la spécification JPA. Le fournisseur de JPA de ce produit est org.eclipse.persistence.jpa.PersistenceProvider.
La spécification JPA 2.1 a ajouté de nouvelles fonctions qui ne sont pas disponibles dans la spécification JPA 2.0. Ces fonctions incluent :
- Génération de schéma
- Méthodes de conversion de type
- Diagrammes d'entités dans les requêtes et opérations de recherche
- Contextes de persistance non synchronisés
- Invocation de procédure mémorisée
- Injection dans les classes de programmes d'écoute d'entités
- Améliorations du JPQL
- Améliorations de l'API Criteria
- Mappage des requêtes natives
Reportez-vous à la spécification JPA 2.1 pour obtenir de plus amples informations sur ces fonctions. Ce produit offre également un sous-ensemble des API EclipseLink. Pour plus de détails, voir la page des fonctions Liberty Java Persistence API 2.1.
Compatibilité de la fonction JPA
- jpa-2.0
-
La fonction jpa-2.0 est l'implémentation de la spécification JPA 2.0 et s'appuie sur Apache OpenJPA. Cette fonction appartient à la famille de technologie Java Platform, Enterprise Edition (Java EE) 6, mais elle est spéciale car elle est compatible avec d'autres fonctions Java EE 7. Par exemple, la fonction servlet-3.1, une fonction Java EE 7, est utilisée avec la fonction jpa-2.0. Ceci permet aux applications de rester avec le fournisseur JPA existant tout en utilisant les nouvelles fonctions de Java EE 7.
- jpa-2.1
-
La fonction jpa-2.1 est l'implémentation de la spécification JPA 2.1 et s'appuie sur EclipseLink. Cette fonction est uniquement compatible avec les autres fonctions de Java EE 7. Si la fonction jpa-2.1 est utilisée avec d'autres fonctions de Java EE 6, l'erreur suivante est inscrite dans le fichier message.log.
CWWKF0033E : Les fonctions de singleton com.ibm.websphere.appserver.javaeeCompatible-7.0 et com.ibm.websphere.appserver.javaeeCompatible-6.0 ne peuvent pas être chargées en même temps. Les fonctions configurées jpa-2.1 et servlet-3.0 incluent une ou plusieurs fonctions qui causent le conflit. Votre configuration n'est pas prise en charge. Mettez à jour le fichier server.xml afin de supprimer les fonctions incompatibles.