Existe-t-il un mode d'utilisation d'Hibernate, généralement accepté et éprouvé, qui conserve l'historique des modifications d'une entité dans la base de données?Mise en veille prolongée, sauvegarde de l'état précédent d'un objet
Nous devons garder une trace de certains objets et nous voulons pouvoir annuler les modifications apportées aux objets.
J'ai essayé d'utiliser les intercepteurs d'hibernation, mais l'ancien état de l'objet n'est disponible que pour merge()
. La plupart du temps nous faisons update()
ou saveOrUpdate()
si ...
Je laisse actuellement warp-persistent avec Guice gérer la session.
Le paramètre 'oldValues' semble être nul, quand' onFlushDirty() 'est appelé whiel faisant' update() 'ou' saveOrUpdate() ' – kungfoo
Je pensais qu'ils étaient remplis pour moi, mais quand j'ai regardé de plus près le code J'ai vu que j'étais en train d'interroger l'état actuel de l'entité à partir de la session dans onFlushDirty(). Voilà comment j'ai travaillé autour de la question. –
Je pense que vous avez besoin d'élaborer sur la "requête de la partie état actuel". Je vois que vous interrogez l'ancienne entité, mais comment est-elle utilisée pour créer des attributs modifiés. –