Maîtrisez les techniques de récupération de données avec Hibernate. Cmprenez le chargement d’un Objet à partir de sa clé primaire via get() ou load(). Identifiez les cas d’utilisation de HQL. Comparez l’utilisation de HQL et de l’API Criteria. Identifiez la meilleure stratégie de fetching en fonction de votre besoin.
Objis, spécialiste de la formation Java, est heureux de vous offrir ce
tutoriel, extrait de séances pratiques de la formation HIBERNATE dispensée par Objis.
Les + objis
70% de travaux pratiques
Clé USB avec tous les outils utilisés + Corrigés TPs
Bilan pédagogique individuel + conseils
Prérequis, outils et versions
Tutoriel Hibernate N°2 : votre première application hibernate
Liens utiles
+ de 100 tutoriaux java/jee Objis
Objis, spécialiste formation java depuis 2005
Chapitre 14. HQL: Langage de requêtage d’Hibernate
Chapitre 15. Requêtes par critères
Tuning performances avec taille du Fetch (nb enregistrements A/R)
Exemples tutos hibernate Roseindia
Objectifs
Comprendre les logs générés par Hibernate
Analysez certaines configurations par défaut.
Programme
Contexte : récupération de données
Partie 1 : Récupération à partir de la clé primaire
Partie 2 : Utiliser HQL (Hibernate Query Language)
Partie 3 : Utiliser l’API Criteria
Partie 3 : Stratégie de Fetching
Durée
30 min.
Partie 1 : Récupération à partir de la clé primaire
Les méthodes session.get() et session.load() vous permettent de charger un objet en mémoire à partir de son Id clé primaire en base de données.
Voir notre tutoriel hibernate N°4 : mapping association Many-to-one
Partie 2 : Utiliser HQL (Hibernate Query Language)
Analysez le code suivant
commentez la requête générée
Partie 3 : Utiliser l’API Criteria
Analysez le code suivant
commentez la requête générée
En utilisant l’API Criteria, expliquer et mettez en oeuvre les méthodes suivantes :
— createCriteria
— add
— addOrder
— setFirstResult
— setMaxResults
— setFetchSize
Expliquez le rôle de la classe Restriction ainsi que des méthodes statiques suivantes :
— allEq
— between
— eq
— ge
— gt
— idEq
— like
— in
— isNotNull
— not
— or
Expliquez ce qu’est une projection SQL. Mettez en œuvre un exemple de projection permettant d’afficher uniquement les colonnes ‘theme’ et ‘duree’ de la table formation.
Corrigé:
Hib-TP-8-hql-criteria-Correction
Partie 4 : Stratégie de Fetching
Par défaut, hibernate 3 utilise le retard au chargement (Lazy loading) : il essaiera de différer au maximum le chargement des objets impliqués dans une relation d’associations, ou d’une collection.
Par exemple, pour toute formation chargée, le lieu de la formation, les formateurs ainsi que les participants ne seront pas chargés.
Dans certains cas cependant (en particulier pour des objets détachés), vous souhaitez charger systématiquement un objet ou une collection d’objets associés à un objet.
Par exemple vous pouvez souhaiter qu’à chaque Formation chargée, le lieu de la formation ainsi que les formateurs soient chargés, alors que les participants de la formation bénéficieront du retard au chargement.
Dans ce type de cas, vous devez mettre en oeuvre une stratégie de fetching dans le paramétrage du mapping de la classe formation.
Ce sujet est vue dans le
Tutoriel hibernate N°13 : stratégies de fetching et optimisations requêtes générées
Conclusion
Dans ce tutoriel, vous avez mis en oeuvre des stratégies de récupération de données : récupération directe à partir de l’Id, récupération via l’API HQL, ou via l’API Criteria.