Considérez Hibernate comme un grand cache qui peut utiliser une base de données comme "magasin" où elle met les choses qui ne rentrent plus dans le cache. Hibernate ne videra pas tout dans la base de données lorsque vous le modifierez, il attendra. Il y a de fortes chances que vous modifiiez plus d'un champ dans un objet.
Vous devez donc vider la session (em.flush()
), ou vous devez exécuter une requête, ou vous devez valider la transaction en cours (ce qui n'est pas une option facile lorsque vous utilisez Spring).