Blue Flower

Chercher

1. Les différents composants de JPA

1.1.  Présentation

Le schéma ci-contre montre l'architecture de l'API JPA, c'est à dire ses classes de base et ses interfaces.

JPA Architecture

1.2. La classe javax.persistence.Persistence

La classe Persistence utilise une de ses méthodes statiques  pour obtenir un EntityManagerFactory dans les environnements Java SE. Cette classe est également présente dans tout serveur d'applications  Java EE et c'est pour cela que la prise en charge des API d'amorçage Java SE n'est pas requise dans les environnements des serveurs d'application Java EE.
On utilise la classe Persistence pour initialiser une instance EntityManagerFactory dans les environnements Java SE; dans un environnement Java SE, on créé une instance de EntityManager avec la méthode "Persistence.createEntityManagerFactory()" qui retourne une instance de l'interface EntityManagerFactory. Avec la méthode "EntityManagerFactory.createEntityManger()" on crée une instance de EntityManager. On peut illustrer cela par ce bout de code ci-dessous avec "EmpService" comme unité de persistence:

 ... 
   EntityManagerFactory emf = Persistence.createEntityManagerFactory("EmpService");// EmpService est le nom de l'unité de persistence
   EntityManager em = emf.createEntityManager();
 ...

1.3. L'interface EntityManagerFactory
Cette interface fait partie de javax.persistence et c'est ce qu'on peut appeler familièrement une fabrique de classe pour EntityManager pour une unité de persistance; il crée et gère plusieurs instances de EntityManager.

1.4. EntityManager
Cette interface fournit les méthodes qui gèrent les opérations de persistance des objets au sein de  chaque application dans laquelle elle est utilisée. Dans un Serveur d'application java EE il existe  un gestionnaire de EJB 3 Entity (JPA Entity) et le contexte de persistance d'une instance d'EntityManager est propagé automatiquement à tous les composants de l'application qui utilisent cette instance au sein d'une API JTA (API Java Transaction). En propageant automatiquement le contexte de persistance, les composants d'une application n'ont pas besoin de passer des références à des instances EntityManager les unes aux autres pour effectuer des modifications au sein d'une seule transaction. C'est le conteneur  du serveur d'application Java EE qui gère le cycle de vie des gestionnaires d'Entity JPA  qui s'en charge.
Les transactions JTA impliquent généralement des appels entre les composants d'une application Java/Java EE. Pour compléter une transaction JTA d'une appplication, les composants concernés ont généralement besoin d'accéder à un contexte de persistance unique. C'est ce qui se produit lorsqu'un EntityManager est injecté dans les composants d'une application au moyen de l'annotation "javax.persistence.PersistenceContext".

1.5. Entity
Les JPA Entity  sont les objets qui sont concernés par la persistance dans la base de données au sein d'une application Java/JEE (voir introduction).

1.6. EntityTransaction
L'EntityTransaction au sein d'une application a une relation "une-à-une" (one-to-one) avec l'EntityManager avec lequel il est lié. Pour chaque EntityManager, les opérations sont traitées ensembles au sein d'une instance d'une classe EntityTransaction.

1.7. Persistence
Cette classe contient des méthodes statiques permettant d'obtenir des instances de  EntityManagerFactory.

1.8. Query
Pour l' API JPA, cette interface est implémentée par chaque fournisseur pour obtenir des objets relationnels qui répondent aux critères de persistance.
Les classes et les interfaces ci-dessus sont utilisées pour stocker des entités dans une base de données comme un enregistrement. Elles  aident les programmeurs en réduisant leurs efforts pour écrire du code permettant de  stocker des données dans une base de données.

 2. Les relations entre classes avec JPA

(à suivre)..

précédent