1
Stratégies de chargement
- Problématiques liées au chargement des données, l'impédance mismatch, les stratégies de fetch.
- Le chargement par select et sous-select.
- Le chargement par jointure, par lot.
Travaux pratiques
Mise en oeuvre de différentes stratégies de chargement. Etude de différents cas d'anomalie de chargement.
2
Mécanismes de caches
- La gestion des caches. Le cache de session.
- Le cache de second niveau, configuration (cache de cluster ou de JVM), types de cache (EHCache, JBossTreeCache...).
- Mappages de cache.
- Les différentes stratégies : lecture seule, lecture/écriture, lecture/écriture non stricte, transactionnelle.
- Compatibilités entre les caches et les stratégies de concurrence. Le cache de requêtes.
Travaux pratiques
Mise en oeuvre du cache de session et du cache de second niveau.
3
Partage des données
- Transactions et accès concurrents.
- Gestion de la concurrence par contrôle optimiste.
- Verrouillage pessimiste. Mise en cluster.
Travaux pratiques
Cas d'utilisation du verrouillage optimiste. Mise en place d'un cache "clusterisé" avec JBoss TreeCache.
4
Optimisation des associations
- Gestion des associations bidirectionnelles.
- Attribut de mapping " inverse".
- Associations polymorphes.
Travaux pratiques
Manipulation des associations bidirectionnelles.
5
Mapping d'héritage de classes
- Les stratégies d'héritage.
- Une table par hiérarchie de classe.
- Une table par sous-classe.
- Une table par classe concrète.
- Le polymorphisme implicite.
Travaux pratiques
Mise en oeuvre et analyse structurelle des différents héritages.
6
Suivi des performances
- Activation des métriques (statistiques).
- Les différents métriques disponibles.
- L'accès aux métriques (SessionFactory).
- Publication des métriques via JMX.
Travaux pratiques
Analyse de différentes métriques.
7
Projets annexes
- Hibernate Validator. Hibernate Search. Hibernate Shards.
Travaux pratiques
Mise en oeuvre de validation. Activation/désactivation de la validation. Déclenchement de validation autonome. Mise en oeuvre de requêtes Hibernate Search. Mise en oeuvre de Shards et discussion.