Hibernate performance
Maîtriser et optimiser les performances avec Hibernate
Référence : HIBERNATE-PERF-02
Durée : 2 jour(s)

 PROCHAINE SESSION
 
 Date :   Du 18  au 19 mars
 Lieu :  Zenika - Paris
 Prix : 1200 € (HT)
 Formateur :  
 Supports :  
 
Bulletin d'inscription  +33(0)1 45 26 19 15
Autres Dates et Lieux

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 et certaines des notions abordées ces deux jours sont mises en pratique dans la librairie ZenTracker, proposée en licence LGPL.

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

 Contenu

Configuration

  • Comment configurer Hibernate
  • Quels sont les paramètres importants
  • Définition des « Naming Strategy »
  • 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
  • Comment fonctionne 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
  • Comment propager le changement d'état d'une entité vers ses associations
  • 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
  • Optimiser l'utilisation des Criteria
  • Projections et ResultTransformer, intérêt pour l'optimisation et la performance
  • Gestion de la pagination
  • Les requêtes SQL
  • Bien utiliser l'attribut default_batch_fetch_size
  • Comment éviter un ResultSet dont la taille correspond au produit cartésien des lignes des tables de jointures

Mappings avancés

  • Les filtres, utilisés comme des « vues » de base de données paramétrables
  • Différence entre les filtres exécutés au niveau base de données et les filtres exécutés au niveau mémoire
  • Comment parcourir une collection chargée de manière paresseuse, sans déclencher le chargement complémentaire
  • Cas d'utilisation des formula
* Le déjeuner est compris dans le tarif.
** Les livres sont offerts uniquement pour les formations inter-entreprise. Zenika se réserve le droit de changer le livre proposé à tout moment.
 training@zenika.com
 
DownloadTélécharger la fiche !
 
Suggestions
- Hibernate
- JPA avec Hibernate




Auteur du cours
 
Carl Azoury est formateur certifié Spring depuis 2007. Ses autres technologies de prédilection sont Hibernate, dont il a conçu le cours Hibernate Performance, Wicket et Terracotta. Régulièrement il anime des conférences Wicket à Paris, Wicket à Lyon et Terracotta au ch'ti JUG. Ancien Smalltalker, il aime faire sienne la citation d'Alan Kay "Simple things should be simple, and complex things should be possible".


Sessions 2010
Du 28  au 29 janvier
Du 18  au 19 mars
Du 10  au 11 mai
Du 28  au 29 juin
Du 16  au 17 septembre
Du 18  au 19 novembre