Prérequis
Connaissance de Connaissances de base en Java
Durée
3 jours
Contenu Technique de la Formation
La formation aborde les contenus techniques suivants :
- Introduction à l'ORM (Object-Relational Mapping) avec Hibernate
- Configuration et intégration d'Hibernate avec JPA
- Création d'entités et mapping avec Hibernate
- Gestion des relations entre entités (OneToOne, OneToMany, ManyToMany)
- Validation des données avec Hibernate Validator (JSR 303)
- Utilisation des annotations de validation
- Gestion des transactions et du contexte de persistance
- Techniques d'optimisation des performances avec Hibernate
- Utilisation des critères et de HQL (Hibernate Query Language)
- Gestion des migrations de base de données avec Liquibase ou Flyway
Objectifs de la Formation
Les objectifs visés par cette formation sont :
- Comprendre et utiliser les concepts de base d'Hibernate et JPA pour la gestion des données
- Mapper des classes Java vers des tables de base de données relationnelle
- Gérer les relations entre entités et leur cycle de vie
- Valider les données des entités avant leur persistance en base
- Optimiser les performances des requêtes et de la gestion des transactions
Table des Matières
Introduction à JPA et Hibernate
- Concept d’ORM (Object-Relational Mapping)
- Qu'est-ce que JPA et Hibernate ?
- Installation et configuration d’Hibernate avec Maven
- Différences entre JPA et Hibernate
Mapping d’entités avec JPA/Hibernate
- Création de classes entités avec les annotations JPA (@Entity, @Table, etc.)
- Mapping des attributs simples (@Column, @Id, @GeneratedValue)
- Gestion des types de colonnes et des stratégies de génération de clés primaires
- Mapping des relations entre entités :
- @OneToOne, @OneToMany, @ManyToOne, @ManyToMany
- Cascade et gestion du cycle de vie des entités
Gestion des transactions
- Le rôle du EntityManager et du contexte de persistance
- Gestion des transactions (Java Transaction API - JTA)
- Notions de commit, rollback, propagation des transactions
- Transactions programmatiques vs déclaratives
Requêtes et récupération des données
- Introduction à HQL (Hibernate Query Language)
- Utilisation de JPQL (Java Persistence Query Language)
- Création et exécution de requêtes avec l’API Criteria
- Pagination et tri des résultats
- Optimisation des requêtes (lazy loading vs eager loading)
Validation avec Hibernate Validator (JSR 303)
- Introduction à la validation des données avec Hibernate Validator
- Annotations de validation courantes : @NotNull, @Size, @Min, @Max, @Email, etc.
- Validation des entités au moment de la persistance
- Création de validations personnalisées
- Gestion des groupes de validation
- Intégration de la validation dans les formulaires et les API REST
Optimisation des performances
- Utilisation du cache de premier niveau (EntityManager) et du cache de second niveau
- Stratégies de fetching (lazy vs eager)
- Gestion des batchs de requêtes pour optimiser les performances
- Indexation des colonnes et optimisation des bases de données
Migration de schéma de base de données
- Introduction aux outils de migration de base de données : Liquibase, Flyway
- Configuration et utilisation pour gérer les évolutions du schéma
En Pratique
- Création d’un modèle de base de données et mapping des entités avec Hibernate
- Gestion des relations entre entités et création de requêtes HQL
- Validation des données avant persistance avec Hibernate Validator
- Implémentation d’un système de transactions et gestion des transactions dans une application
- Optimisation des requêtes avec des stratégies de fetching et l’utilisation des caches
- Migrations de schéma de base de données avec Liquibase ou Flyway
Modalités et Inscription
Cette formation est proposée selon deux formules pour s'adapter au mieux à vos besoins :
Session régulière
Des sessions sont organisées à intervalles réguliers. Demandez les prochaines dates planifiées pour vous inscrire à la prochaine session.
Sur mesure & intra-entreprise
Vous souhaitez former vos équipes directement dans vos locaux ou adapter le programme technique à votre contexte d'entreprise ? Contactez-nous pour obtenir un devis personnalisé.