Java Persistence API
Description
Il est difficile de concevoir des applications n'exploitant pas des données stockées dans un SGBD relationnel. JPA permet de simplifier la réalisation de "passerelles" entre objets Java et données stockées en base.
Objectifs
A l'issue de cette formation, les participants seront en mesure de:
- Comprendre les concepts présentés dans les différents modules de la formation
- Pouvoir effectuer des choix entre les différentes techniques présentées
- Réussir à les mettre en oeuvre de façon autonome lorsque le module est accompagné de travaux pratiques
Méthodes pédagogiques
Formation avec un minimum de 50% de travaux pratiques. La session alterne les présentations théoriques avec les exercices en groupe ou individuels. Des versions numériques de tous les documents sont remises aux participants (support de cours, énoncés, corrigés).
Participants
Ce cours s'adresse aux développeurs, architectes ou chefs de projet, connaissant déjà bien Java et souhaitant apprendre à mettre en place des données Java persistantes.
Pré requis
- Maîtrise du langage Java nécessaire
- La connaissance des concepts liés aux SGBDR est recommandée
Programme
Introduction
Premières définitions de la notion de persistance.
- Problématiques: "Impedence mismatch"
- Qu’est ce qu’un ORM ?
- Les solutions Java dans les architectures multicouches
- L'API JPA
Concepts de base JPA
Entity et EntityManager.
- La notion d'Entity
- Création d'un EntityManager
- Les opérations de base: création, mise-à-jour, suppression, lecture de données
Bases du mapping objet/relationnel
Mapping avec et sans annotations.
- Les classes d'entités, le mapping des tables et des colonnes
- Les clés primaires
- Les relations entre entités: 1-1, 1-N, M-N
- Le support de l'héritage
La gestion des entités persistantes
Stratégies de chargement, cascade d'opérations, ...
- Les stratégies de chargement des données
- Les opérations en cascade
- Le cycle de vie des objets persistants
Techniques avancées de mapping
Stratégies de chargement, cascade d'opérations, ...
- Relations de composition entre entités, mapping multi-tables
- Clés primaires composées
- La gestion des relations N-M, les tables de jointure
- Les différents types de collections possibles
- Le contrôle des insert et des update
Les requêtes JPQL
Java Persistence Query Language.
- Les principes des SELECT
- Opérations sur les chaînes de caractères et les dates
- Les sous-requêtes
- Les "jointures"
- Les ensembles
Les transactions
Gestion des transactions avec JPA et JTA.
- Gestion des transactions avec JPA
- Principes JTS / JTA
- Container-managed Transactions
- Bean-managed Transactions
Les concurrences d'accès
Comment gérer le compromis intégrité / performances.
- Les niveaux d'isolation d'une transaction
- Les différents modes de verrouillage
- Verrouillage optimiste et @Version