Hibernate envers - 如何仅存储更新的值

时间:2012-10-09 12:56:11

标签: hibernate hibernate-envers post-update

我正在使用Hibernate Envers进行审核。更新后和插入后的工作正常。

我有一个要求,我只需要审核审计表中的更新列(例如employee_aud)。 默认情况下,envers会将整个持久化实体插入到审计表中。

我只需要插入更新的值。

有可能这样做吗?

提前致谢。

干杯!

2 个答案:

答案 0 :(得分:0)

如果您没有为插入后配置envers侦听器会怎样?

我的意思是你从配置中取出插入后监听器吗?

 <listener class="org.hibernate.envers.event.AuditEventListener" type="post-insert"/>

答案 1 :(得分:0)

当您使用@Audited注释实体时,您将控制Envers在发生更改时应检查的属性。然后在旧状态和新状态之间比较这些属性,如果有任何不同,Envers将使用所有已审计属性的新状态值编写新的审计记录。

换句话说,Envers不会编写一个新的审计行,只包含您已切换以进行审计的已修改属性。如果其中任何一个属性发生变化,它将编写一个包含所有审计属性的新审计行。