Tutoriel hibernate N°8 : récupération données avec HQL et Criteria

////Tutoriel hibernate N°8 : récupération données avec HQL et Criteria

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

Tutoriaux HIBERNATE Objis

Objis, spécialiste formation java depuis 2005

Site hibernate (javadoc, faq)

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

tutoriel-hibernate-hql-criteria-1

commentez la requête générée

tutoriel-hibernate-hql-criteria-2

Partie 3 : Utiliser l’API Criteria

Analysez le code suivant

tutoriel-hibernate-hql-criteria-3

commentez la requête générée

tutoriel-hibernate-hql-criteria-4

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.

2018-01-30T14:12:41+01:00

Contactez nous

241 rue DUGUESCLIN, 69003 Lyon

Web : Objis : spécialiste formation Java