Hibernate为审计日志获取旧/新

时间:2011-12-01 00:19:52

标签: hibernate spring struts2

我想记录一些实体的更改。 所以我正在使用onflushdirty的hibernate拦截器。

但以前的状态始终为空或为空

经过一些搜索后,我发现了两种获取旧/先前值的方法:

1-打开一个新的临时会话并再次找到该bean

2-为了让previousStates []不为空我必须使用merge而不是save / update。 (实际上不确定这是否属实,并且不知道实际系统的行为会发生什么......)

还有其他更好的方法吗?

1 个答案:

答案 0 :(得分:0)

如果您只是使用您创建的对象调用update,则先前的状态将为空。您应首先加载/获取对象,然后更改其属性(在常规代码中不在拦截器中),执行此操作后,您将获得先前的状态。合并实现了同样的目标。