ObjectifsObjectifs
Assimiler les concepts et les enjeux du mapping objet /
relationnel
Maîtriser les principales fonctionnalités de JPA
Développer et intégrer une couche de persistance dans
une application Java
PublicPublic
Architecte
Développeur
PrérequisPrérequis
Connaissance de Java. Notions sur Maven et Spring.
Répartition
50% Théorie, 50% Pratique
JPA avec HibernateJPA avec Hibernate
Durée 3 jour(s) (HIBERNATE-03)Durée 3 jour(s) (HIBERNATE-03)
La persistance des données d'une application Java/JEELa persistance des données d'une application Java/JEE
DescriptionDescription
Hibernate est l'outil de mapping objet/relationnel le plus connu du monde Java. Nous verrons comment écrire une couche de persistance
avec l'API JPA. Cette formation aborde les nouveaxu concepts de JPA 2.1 et Hibernate 5. Elle donne les bonnes pratiques pour accéder à
une base de données relationnelle de manière performante et maintenable.
ProgrammeProgramme
IntroductionIntroduction
Concepts et enjeux de la persistance des données
De JDBC aux ORM
Standardisation des ORM : naissance de la spécification Java
Persistance API
Hibernate : ses origines, son écosystème
Mise en placeMise en place
Installation du produit et paramétrage des fichiers de
configurations
Pool de connexions
Traces SQL
Premier mappingPremier mapping
Mapper un objet Java simple sur table
Configuration par convention, par annotation et par XML
Générateur d'identifiants
ManipulationManipulation
EntityManager: rôle, initialisations
Transiente, attachée, détachée: le cycle de vie d'une entité
Les transactions
Create, Read, Update, Delete avec JPA: les opérations de base
de l'EntityManager
Le flush
Les relationsLes relations
Relation One to Many/Many to One
Relation Many to Many
Relation One to One
Relation bidirectionnelle
Cascading
L'héritageL'héritage
Stratégie un seule table
Stratégie une table par classe concrète
Stratégie une table par classe
Avantages et inconvénients de chaque stratégie
Héritage technique avec MappedSuperClass
Les composantsLes composants
Notion d'entité et de valeur
Mapper un classe avec Embedded
Collection de composants
Le requêtageLe requêtage
Un mode de requêtage du monde objet basé sur SQL
Exploration des opérateurs du langage JPQL
Injection des paramètres dans les requêtes
Requêtage dynamique avec l'API Criteria
Génération du meta modèle
Le lazy-loadingLe lazy-loading
Lazy-loading d'une relation to Many
Lazy-loading d'une relation to One
Utilisation des proxies: les pièges à éviter
Le problème du 1+N Select et ses solutions
OptimisationOptimisation
Le cache de second niveau
Les statistiques
Mapping avancéMapping avancé
Le verrouillage optimiste et pessimiste
Les clés multiples
Spring et architecture applicativeSpring et architecture applicative
Découpage en couche et design pattern DAO
La portée de l'EntityManager et de la transaction
Intégrer Hibernate/JPA dans une application Spring
Génération des DAO avec Spring Data JPA
TestsTests
Comment tester un DAO JPA ?
Utilisation de Spring Test
Introduction à DBUnit
1 / 2 100%