Diversification
L’API JPA et la gestion des entités
Nous avons exploré au chapitre précédent les fondamentaux de l’architecture EJB3 ainsi que le modèle de développement des beans session supporté par la nouvelle spécification. Nous présentons dans ce chapitre le modèle entité introduit par la spécification EJB 3.0, qui fait l’objet d’un document spécifique, preuve du soin apporté à ce sujet sensible entre tous qu’est la persistance des données. La nouvelle API JPA (Java Persistence API) offre de nombreuses améliorations, qui tendent vers une plus grande simplicité que les précédentes versions du modèle EJB. Comme les beans session, les beans entité deviennent de simples POJO, découplés de leur framework de persistance. Cela permet de les utiliser à l’intérieur comme à l’extérieur de leur conteneur.
JPA (Java Persistence API)
L’API de persistance Java JPA est une spécification de Sun. Fondée sur le concept POJO pour la persistance Java, elle est relativement récente puisque sortie en même temps que JEE5, en mai 2006. Disponible depuis les premières versions du JDK 1.5, JPA est une norme, et non une implémentation, chaque fournisseur étant libre d’implémenter son propre framework de persistance tant qu’il respecte les spécifications JPA. JPA permet de mapper les objets POJO avec les tables de la base. Il devient dès lors possible d’utiliser JPA pour stocker les objets Java codés sans avoir à les sous-classer ou à implémenter une interface spécifique, à l’inverse de la lourdeur imposée par EJB 2.x. La persistance traite des aspects de stockage et de récupération des données applicatives. Elle peut maintenant être programmée avec l’API de persistance Java, devenue un standard dans la spécification EJB 3.0 (JSR-220). Elle est apparue en réponse au manque de
226
Développement EJB3 avec Eclipse et Web Tools PARTIE III
flexibilité et à la complexité de la spécification J2EE 1.4, en particulier en ce qui concerne la persistance des beans entités. Rappelons que c’est poussé et