2010-08-25 2 views
1

utilise la méthode de fusion hibernate, pour gérer l'instance détachée de l'entité, et je pensais que le retour de cette méthode serait une nouvelle instance récupérée de la base de données comme méthode hibernate saveOrUpdate, mais ce n'était pas le cas, et je pense logique car il est une instance indépendante, donc est-il une meilleure façon de retourner la nouvelle instance plutôt que d'utiliser findById,Rafraîchir une instance d'entité après avoir utilisé la fusion dans Hibernate?

salutations,

Répondre

1

les copies de méthode merge l'état de l'objet passé à une entité persistante avec le même identifiant (qui est déjà associé à la session ou qui sera chargé) et renvoie ensuite une référence à cette entité persistante. L'objet transmis en paramètre n'est pas associé à la session.

Donc, à moins que je ne comprenais pas la question, je pense que vous devriez faire quelque chose comme ceci:

Foo mergedFoo = session.merge(foo); 
+0

oui vous l'obtenez correct, et votre réponse est claire, mais il est mon problème :), je pense la seule façon de récupérer l'objet original avec de nouveaux changements, est en appelant findById après la fusion, alors monsieur pour votre réponse, Cordialement –

+0

@Amr je ne comprends pas. Quel est le problème avec l'utilisation de 'mergedFoo'? –

+0

mergedFoo est la nouvelle instance, après sa fusion, la sortie n'est pas mise à jour version oh l'objet reflétant toutes les modifications de la base de données –