Problème de merge de session Hibernate - Java - Programmation
MarshPosté le 12-01-2013 à 23:56:35
Bonsoir la team,
j'ai un problème qui paraît simple mais qui ne l'est pas tant que ça ... Je vous l'explique: Dans ma session, je modifie un profil, plus précisément son groupe, en y référençant un autre. Pour mon exemple, j'ai mon profil P1 qui fait référence à mon groupe G2, et non plus G1.
Lors de la sauvegarde, je crée une transaction où je veux sauvegarder mon nouveau profil. Pour cela, j'effectue dans ma transaction les actions suivantes :
- 1) j'effectue une requête en base pour avoir la valeur actuelle de mon profil (P1 qui référencie G1). Pour ma requête en Hibernate, je choisis de ne pas "merger" le résultat récupérer en base avec la session pour ne pas écraser la valeur de mon ancien profil avec le profil modifié (et donc avoir l'ancienne valeur de mon profil P1 : le groupe G1).
- 2) J'affecte à mon profil P1 le groupe G2 via son setter.
- 3) Puis je casse le lien entre mon groupe G2 et mon profile P1.
Et là: lors de l'opération (setter du groupe G2 à null), j'ai une erreur! Cela vient du fait que mon groupe G2 n'est pas lié à la session actuelle à cause de l'option Merge de ma requête.
Pouvez-vous me donner une solution pour résoudre ce problème? (J'ai essayé plusieurs alternative, mais je n'arrive pas à contourner ce problème).
Marsh Posté le 12-01-2013 à 23:56:35
Bonsoir la team,
j'ai un problème qui paraît simple mais qui ne l'est pas tant que ça ... Je vous l'explique:
Dans ma session, je modifie un profil, plus précisément son groupe, en y référençant un autre.
Pour mon exemple, j'ai mon profil P1 qui fait référence à mon groupe G2, et non plus G1.
Lors de la sauvegarde, je crée une transaction où je veux sauvegarder mon nouveau profil.
Pour cela, j'effectue dans ma transaction les actions suivantes :
- 1) j'effectue une requête en base pour avoir la valeur actuelle de mon profil (P1 qui référencie G1).
Pour ma requête en Hibernate, je choisis de ne pas "merger" le résultat récupérer en base avec la session pour ne pas écraser la valeur de mon ancien profil avec le profil modifié (et donc avoir l'ancienne valeur de mon profil P1 : le groupe G1).
- 2) J'affecte à mon profil P1 le groupe G2 via son setter.
- 3) Puis je casse le lien entre mon groupe G2 et mon profile P1.
Et là:
lors de l'opération (setter du groupe G2 à null), j'ai une erreur!
Cela vient du fait que mon groupe G2 n'est pas lié à la session actuelle à cause de l'option Merge de ma requête.
Pouvez-vous me donner une solution pour résoudre ce problème?
(J'ai essayé plusieurs alternative, mais je n'arrive pas à contourner ce problème).
Merci de votre aide,
Berni.