vers l'accueil formulaire de contact

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

Votre formation HIBERNATE avec Objis, spécialiste formation java depuis 2005 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)
- Documentation (chap. 10) : working with objects
- 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

PNG - 25.5 ko
tutoriel-hibernate-hql-criteria-1

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

PNG - 7 ko
tutoriel-hibernate-hql-criteria-2

Partie 3 : Utiliser l’API Criteria

- Analysez le code suivant

PNG - 20.8 ko
tutoriel-hibernate-hql-criteria-3

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

PNG - 6.6 ko
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.

Zip - 705 octets
DemoHibernateProjection

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.

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.

Pour aller plus loin

- Si vous appréciez notre sens du partage, devenez membre ’classic’ du Club Objis.
- Accélérez significativement votre maîtrise d’Hibernate avec un coach Objis : devenez membre Silver / Gold du Club Objis.