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
Partie 1 : objet détaché
Analysez le code suivant
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 :
En utilisant la documentation hibernate, expliquez ce qu’apporte la méthode update()
Partie 3 : limites de la méthode update()
Analysez le code suivant :
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 ?
Logs
trace-log-hibernate-update-exception-NonUniqueObjectException
Partie 4 : ré attachement par merge()
Analysez le bloc suivant :
Le merge permet de répondre à la problématique non gérée par update().
Analysez le code suivant
Expliquez.
Quel résultat en base pour l’enregistrement ?
Code
Corecttion
Conclusion
Dans ce tutoriel, vous avez mis en pratique la notion de merge dans hibernate.