Objectifs pédagogiques / Compétences visées
- Reconnaître et résoudre les problématiques classiques de performance liées au mapping objet-relationnel
- Utiliser les concepts avancés d'Hibernate liés à la performance
- Mettre en oeuvre les bonnes pratiques de développement Hibernate
- Utiliser les différents caches Hibernate.
Niveau requis
Avoir une bonne pratique de base d'Hibernate ainsi que de Java.
Public concerné
Architectes, chefs de projets et ingénieurs.
Programme
Objectifs
- Mapping Objet-Relationnel et "impedance mismatch"
Problématiques liées au chargement des données
- Le Lazy Loading ou chargement par nécessité
- Notion et utilisation de Proxy
- Les stratégies de Fetch
Utilisation des caches d'Hibernate
- Le cache de session
- Le cache de second niveau
- Le cache mapping
- Les stratégies de cache
- Avantages et inconvénients des différentes implémentations
- Le cache de requête
Partage des données
- Problématiques liées à la concurrence d'accès
- Verrouillage optimiste / pessimiste
- Clustering
- JBossTreecache
Optimisation des associations
- Cas des associations bi-directionnelles
- Gestion de l'attribut inverse
- Associations polymorphes
Problématiques liées à l'héritage
- Une table par hiérarchie
- Une table par sous-classe
- Une table par classe concrète
Monitoring des performances
- Suivi d'une SessionFactory
- Métriques
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation ou une certification (M2i ou éditeur)