Techniques de persistance Java et JPA- Présentation des différentes techniques de persistance
- Les types de frameworks de persistance
- La solution Java Persistence API (JPA) : un modèle de programmation simplifié
- Intégration de la couche JPA dans une application JavaEE
Développer une première classe persistante- Coder la classe persistante
- Effectuer le mapping Objet / Relationnel à l'aide des annotations
- Définir les propriétés de configuration (connexion bdd, dialecte...)
- Démarrer le moteur JPA : les classes EntityManager et EntityManagerFactory
- Effectuer une requête JPQL et sauvegarder un objet persistant
Mapping objet / relationnel avec JPA- Contexte et objectifs d'un outil de mapping Objet / Relationnel
- Développement des classes persistantes : POJO, unicité des objets, sérialisation, associations
- Mapping des classes : identifiants, propriétés, données temporelles et types énumérés
- Mapping des associations : embedded, one-to-one, one-to-many, many-to-one
- Mapper une hierarchie d'héritage : les différentes stratégies possibles
Manipuler les objets persistants- Charger les objets persistants : les différentes techniques de lecture
- Les stratégies de chargement : lazy loading, chargement immédiat, chargement agressif
- Mécanisme détaillé du lazy loading : comment maîtriser le chargement retardé
- Les opérations CRUD : insertion, lecture, mise à jour et suppression d'un objet persistant
- Comprendre le cycle de vie des objets persistants gérés par JPA
- Synchronisation avec la base de données : les différents modes de flushing
- Principe de la persistance en cascade
Utilisation avancée du mapping- Mapping des classes et propriétés : clé primaire composée, mapping multi-tables...
- Contrôler les requêtes INSERT et UPDATE générées par JPA
- Mapping des associations : sémantiques list et map, associations many-to-many
Le langage JPQL- Requêtes d'interrogation : sélection des données, opérateurs de comparaison, opérateurs logiques
- Opérations sur les chaînes de caractères et les données temporelles
- Principe des requêtes avec jointures implicites, internes, externes et jointures rapportées
- Principe des sous-requêtes et des prédicats associés (in, all, any, some, exist)
- Effectuer des projections et utiliser l'instanciation dynamique
- Requêtes sur les ensembles : les clauses count, min, max, avg, having, group by
Transactions et accès concurrents- Rappel des propriétés d'une transaction : les propriétés ACID
- La gestion transactionnelle avec JPA
- Intégration dans une application Web : environnements JTA et non-JTA
- Intégration dans une application EJB
- Les techniques de verrouillage pessimiste et optimiste
|