vers l'accueil formulaire de contact

Tutoriel hibernate N°16 : comprendre le merge

Votre formation HIBERNATE avec Objis, spécialiste formation java depuis 2005

Maîtrisez la notion d’objet détaché hibernate ainsi que les problématiques du ré attachement. Comprenez le cas d’utilisation, la valeur ajoutée ainsi que les limites de la méthode update(). Découvrez la stratégie de réattachement basée sur le merge.

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

Objectifs

- Comprendre l’opération de merge dans hibernate
- Identifier le cas d’utilisation des méthodes update() et merge()

Programme

- Contexte
- Partie 1 : Objets détachés
- Partie 2 : réattachement via update()
- Partie 3 : les limites d’update()
- Partie 4 : réattachement via merge()

Durée

30 min.

Données

PNG - 9.7 ko
tutoriel-hibernate-comprendre-merge-objet-detache-0bis

Partie 1 : objet détaché

- Analysez le code suivant

PNG - 6.9 ko
tutoriel-hibernate-comprendre-merge-objet-detache-1

QUESTION : qu’est ce qu’un état détaché dans hibernate ?

- Citez au moins un avantage et un inconvénient d’utiliser des objets détachés dans hibernate.

Partie 2 : ré attachement par update()

Afin de garantir à nouveau le service de persistance d’un objet détache, hibernate fournir plusieurs stratégies pour le ré attacher à un contexte de persistence.

- Analysez le code suivant :

PNG - 17.1 ko
tutoriel-hibernate-comprendre-merge-objet-detache-2

- En utilisant la documentation hibernate, expliquez ce qu’apporte la méthode update()

PNG - 755 octets
tutoriel-hibernate-comprendre-merge-update-db-OK

Partie 3 : limites de la méthode update()

- Analysez le code suivant :

PNG - 18.6 ko
tutoriel-hibernate-comprendre-merge-limite-update-1

- Quelle différence avec le code précédent ?

- Quel est le résultat de ce code ? Pourquoi ?

Exception levée : NonUniqueObjectException

Hibernate va lever une exception :

— Exception in thread "main" org.hibernate.NonUniqueObjectException : a different object with the same identifier value was already associated with the session : [com.objis.demohibernate.complexe.FormationInter#3]

Il ne sait pas quelle instance objet utiliser pour mettre à jour l’enregistrement : faut t’il utiliser l’instance détachée ou l’instance présente dans le contexte de persistance ?

PNG - 80.4 ko
tutoriel-hibernate-comprendre-merge-limite-update-2

Logs

texte - 2.1 ko
trace-log-hibernate-update-exception-NonUniqueObjectException

Partie 4 : ré attachement par merge()

- Analysez le bloc suivant :

PNG - 17.8 ko
tutoriel-hibernate-comprendre-merge-3

- Le merge permet de répondre à la problématique non gérée par update().

PNG - 755 octets
tutoriel-hibernate-comprendre-merge-update-db-OK

- Analysez le code suivant

PNG - 23.4 ko
tutoriel-hibernate-comprendre-merge-merge-db-OK

- Expliquez.

- Quel résultat en base pour l’enregistrement ?

Code

texte - 6.9 ko
code_demomerge

Conclusion

Dans ce tutoriel, vous avez mis en pratique la notion de merge dans hibernate.

Prochaine formation HIBERNATE

Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur Hibernate :

Votre formation HIBERNATE avec Objis, spécialiste formation java depuis 2005

Pour aller plus loin : le réseau Objis

Si vous appréciez notre sens du partage, devenez gratuitement membre ’classic’ du Club Objis :
- Votez pour les prochains tutoriaux à publier
- Préparez vos entretiens techniques
- Valorisez votre profil / expertise
- Identifiez des opportunités d’emploi
- Recevez la newsletter objis.com