Gestion avancée de la persistance avec Hibernate
Référence : PIBA
Durée : 2 jours (14 heures)
Si la mise en oeuvre d'une application utilisant Hibernate peut paraître simple de prime abord, l'exploitation de sa puissance de manière efficace n'est pas une tâche aisée. Un des constats les plus courants est le manque d'expérience des développeurs Java utilisant Hibernate sans en maîtriser la complexité, ce qui peut entraîner de gros problèmes de performance.
Ce cours permet de mettre le doigt sur les points essentiels à maîtriser afin de développer efficacement et d'optimiser les performances d'Hibernate. Il permet aussi de savoir quels sont les contrôles à effectuer en priorité lorsque l'équipe de développement manque d'expérience.
Travaux pratiques :
Avec l'aide du formateur, une mise en oeuvre des différentes configurations transactionnelles et de gestion de sessions seront mises en oeuvre (Open Session In View, Session-Per-Operation, Session-Per-Request). Les Frameworks complémentaires à Hibernate seront évoqués (Spring, EJB3) et enfin le cache de second niveau sera décortiqué.
Vous allez apprendre à :
- Gérer efficacement la session Hibernate
- Choisir la stratégie la plus adaptée à l'extraction des données
- Mettre en oeuvre une architecture technique multi-niveaux adaptée à Hibernate
- Utiliser Hibernate Search
- Paramétrer le cache de second niveau
- Effectuer des mappings complexes
Méthode pédagogique :
60% de travaux pratiques
Audience :
Utilisateurs avertis du Framework Hibernate
Pré-requis :
- Connaissance pratique du langage Java
- Formation PERIB et / ou utilisation d'Hibernate
Programme :
- Gérer la session
- La Session Factory
- Les sessions contextuelles
- Synchronisation des objets persistants avec la base de données (Flush, Merge...)
- Persistance transitive et détachement
- Moniteur de performance : la Session Factory
- Les transactions
- Utilisation de transactions optimistes
- Maîtriser les verrous en base
- Écrire efficacement la classe d'un objet persistant
- Accès direct aux attributs
- Gestion de l'ID d'une classe
- Gestion des associations managées
- Redéfinition des méthodes Equals et Hashcode
- Modèle dynamique de classe
- Extraction efficace des données de la base
- Lazy Loading et autres stratégies
- Hibernate Query Language (HQL) avancé
- SQL natif et procédures stockées
- Cas de mapping complexe
- Cache second niveau
- Les différentes stratégies
- Le cache de requête
- Hibernate Search
- Présentation
- Indexation des entités