Bonjour,
Ton post n'est pas sur le bon forum, tu devrai le mettre dans le forum de persistence, mais je réponds néanmoins avant que les admins ne le déplacent:
- quand je modifie autre chose que la clé primaire en utilisant la méthode merge, pas de soucis.
Normal, c'est le fonctionnement prévu de merge, il met à jour les données présentes en mémoire, avec celles présentes en bd, ce rien que pour l'objet présent en base.c'est un "update" en d'autres termes.
- quand je modifie la clé primaire pour une nouvelle clé, si celle-ci n'existe pas il me crée un objet avec les nouvelles informations et je suis obliger de supprimer l'ancien objet avec remove.
Par principe on ne modifie pas la clé primaire d'un enregistrement,c'est un principe fondamental à la notion de base de donnée, c'est normal que merge se positionne sur l'enregistrement dont la clé primaire est définie dans l'objet que tu veux mettre à jour.
j'ai l'impression de mal avoir compris le principe du merge et la différence entre merge et flush
Flush quant à lui ne prend pas de paramètres, mais son role est plus général, il synchronise toutes les entités attachés avec la base de donnée, il faut généralement l'utiliser si tu es en politique auto_commit=false et que tu veux déconnecter un user, moi perso je ne le fais pas souvent car c'est couteux, donc mon auto commit est en général à true.
Voila voila
Partager