Description
Cette formation Hibernate avancée s’adresse aux développeurs Java souhaitant optimiser les performances de leurs applications. Elle permet d’approfondir la maîtrise des stratégies de chargement des données et d’éviter les pièges classiques de l’ORM. Les participants apprennent à configurer et exploiter efficacement les mécanismes de cache Hibernate. La gestion de la concurrence et des transactions en environnement multi-utilisateurs est abordée de manière concrète. Le programme couvre également l’optimisation des associations complexes et le mapping d’héritage. Les outils de monitoring et les métriques Hibernate sont utilisés pour diagnostiquer les problèmes de performance.
Objectifs
- Maîtriser les stratégies avancées de chargement des données avec Hibernate
- Optimiser les performances des applications Java utilisant Hibernate et JPA
- Configurer et exploiter efficacement les mécanismes de cache Hibernate
- Gérer les accès concurrents et les transactions en environnement multi-utilisateurs
- Choisir et mettre en œuvre des stratégies adaptées de mapping d'associations et d'héritage
- Analyser et diagnostiquer les problèmes de performance à l'aide des métriques Hibernate
Récapitulatif
Public
Ingénieurs logiciels et développeurs back-end Java/JEE souhaitant optimiser la couche de persistance.
Prérequis
Bonne maîtrise du langage Java et de la programmation orientée objet.
Connaissances solides des bases de données relationnelles et du langage SQL.
Pratique préalable d'Hibernate ou de JPA.
Méthodes et modalités pédagogiques
Formation réalisée en Présentiel, Distanciel ou Dual-Learning selon la formule retenue.
Moyens et supports pédagogiques
Mise à disposition d'un poste de travail sur nos formations en Présentiel.
Mise à disposition de nos environnements de visio sur nos formations en Distanciel
Remise d'une documentation pédagogique numérique pendant la formation
La formation est constituée d'apports théoriques, d'exercices pratiques et de réflexions
Dans le cas d'une formation sur site Entreprise, le client s'engage à avoir toutes les ressources pédagogiques nécessaires (salle, équipements, accès internet, TV ou Paperboard...) au bon déroulement de l'action de formation conformément aux prérequis indiqués dans le programme de formation
Modalités de suivi et d'évaluations
Auto-positionnement des stagiaires avant la formation
Émargement des stagiaires et formateur par 1/2 journée
Exercices de mise en pratique ou quiz de connaissances tout au long de la formation permettant de mesurer la progression des stagiaires
Auto-évaluation des acquis de la formation par les stagiaires
Questionnaire de satisfaction à chaud et à froid à l'issue de la formation
Programme détaillé
Stratégies de chargement des données
- Comprendre les problématiques liées au chargement des données (impédance mismatch)
- Maîtriser les différentes stratégies de fetch (select, sous-select, jointure)
- Identifier et corriger les anomalies de chargement (ex. N+1)
- Travaux pratiques : Mise en œuvre et comparaison des stratégies de chargement sur des cas concrets
Mécanismes de cache Hibernate
- Comprendre le cache de session et son rôle dans la persistance
- Mettre en place un cache de second niveau et le configurer
- Explorer les types de cache (lecture seule, transactionnel, etc.)
- Appréhender le cache de requêtes et le mapping de cache
- Travaux pratiques : Configuration et exploitation des caches de session et de second niveau
Gestion de la concurrence et partage des données
- Gérer les accès concurrents et les transactions en environnement multi-utilisateurs
- Mettre en œuvre le verrouillage optimiste et pessimiste
- Approche des caches distribués et mise en cluster
- Travaux pratiques : Mise en place du verrouillage optimiste et test de scénarios d'accès concurrents
Optimisation des associations complexes
- Comprendre et optimiser la gestion des associations bidirectionnelles
- Utiliser correctement l'attribut inverse
- Gérer les associations polymorphes
- Travaux pratiques : Manipulation et optimisation des relations entre entités
Mapping d'héritage de classes
- Étudier les différentes stratégies de mapping d'héritage
- Une table par hiérarchie de classes
- Une table par sous-classe
- Une table par classe concrète
- Comprendre les implications de chaque stratégie
- Travaux pratiques : Mise en œuvre et analyse d'héritages avec des modèles variés
Suivi et optimisation des performances
- Activer et exploiter les métriques Hibernate (statistiques)
- Analyser les différentes métriques disponibles
- Accéder aux métriques via la SessionFactory et JMX
- Pistes d'amélioration des performances basées sur les indicateurs mesurés
- Travaux pratiques : Collecte et analyse de métriques de performance