Formation Hibernate performance
Maîtriser et optimiser les performances avec Hibernate
Durée : 1 jour(s)
Référence : HIBERNATE-PERF-02
|
- Offert en inter-entreprise
|
Petit déjeuner
Déjeuner
Qualification téléphonique
|
|
La prochaine session est animée par
|
François Fornaciari est consultant et formateur Java EE / OSGi et RIA chez Zenika. Il est membre du board de l'OSGi Users' Group France. Au sein de la cellule R&D chez Bull, il a participé à la refonte du serveur d'applications JOnAS entièrement basé sur une architecture OSGi. Il a aussi animée une session sur le sujet à la conférence ApacheCon à Atlanta |
|
Présentation
Comment limiter les accès à la base de données ? Maîtriser l'initialisation paresseuse ? Mesurer l'activité de l'outil ? Que fait la méthode « update » de la Session ?
Cette formation est construite du retour d'expériences projets de nos consultants... ne vous laissez pas surprendre par Hibernate et apprenez à maîtriser les performances. |
Objectifs
- Maîtriser les fonctionnalités avancées d'Hibernate
- Améliorer l'intégration d'Hibernate en environnement JEE
- Savoir paramétrer finement Hibernate et maîtriser les accès à la base de données
|
Répartition :
50% Théorie, 50% Pratique |
Public :
Architecte, Développeur, Chef de projet |
Pré-requis :
Connaître Hibernate |
Programme
Configuration
- Comment configurer Hibernate
- Quels sont les paramètres importants
- Comment mesurer l'activité d'Hibernate
- Apprendre à activer et utiliser les statistiques
Opérations de Session
- Comment Hibernate gère les entités
- Définition des 3 états d'une entité et comment passer d'un état à un autre (Transient, Persistent, Detached)
- Conséquences et impacts sur les performances liés à chaque état
- Fonctionnement de la méthode flush()
- Ré-attacher un objet à la session et différence entre les méthodes merge(), update() et lock()
Relations avancées
- Fonctionnement de l'attribut cascade
- Impacts et conséquences liés à l'utilisation de liens bidirectionnels
- Code Java et performance
- L'attribut de mapping « inverse »
Interception et événements
- S'immiscer au coeur de la session Hibernate
- Comprendre le modèle événementiel
- Comment rajouter et enrichir les listener par défaut d'Hibernate
- Comment connaître le type exact des entités manipulées par la Session
- Quels sont les champs modifiés d'une entité mise à jour, valeur avant et après
Batch
- Utilisation de batch pour la suppression et la mise à jour de masse
- Stratégie de génération d'identifiants : Impact sur le mode batch
Cache
- Comment configurer le cache de second niveau
- Comment configurer et utiliser le cache de requêtes
Requêtes
- Comment optimiser ses requêtes afin de limiter les accès à la base de données
- Bien utiliser et comprendre les stratégies de fetch
- Comment charger des objets sans tenir compte du mapping
- Projections et ResultTransformer, intérêt pour l'optimisation et la performance
- Les requêtes SQL
- Bien utiliser l'attribut default_batch_fetch_size
|
|