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

Hibernate envers-如何仅存储更新的值,hibernate,hibernate-envers,post-update,Hibernate,Hibernate Envers,Post Update,我正在使用Hibernate Envers进行审计。后期更新和后期插入工作正常 我有一个要求,即我只需要审核审核表中更新的列(例如employee_aud)。 默认情况下,envers会将整个持久化实体插入到审计表中 我只需要插入已更新的值 有没有可能这样做 提前谢谢 干杯 如果不为后期插入配置envers侦听器,会发生什么情况 我的意思是如果你从你的配置中取出插入后的监听器 <listener class="org.hibernate.envers.event.AuditEventLi

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

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

我只需要插入已更新的值

有没有可能这样做

提前谢谢


干杯

如果不为后期插入配置envers侦听器,会发生什么情况

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

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

如果不为后期插入配置envers侦听器,会发生什么情况

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

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

当您用
@Audited
注释一个实体时,您可以控制发生更改时Envers应该检查哪些属性。然后在旧状态和新状态之间比较这些属性,如果有任何不同,Envers将为所有已审核属性编写一个新的审核记录,其中包含新的状态值


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

当您使用
@audited
注释实体时,您可以控制当发生更改时Envers应检查哪些属性。然后在旧状态和新状态之间比较这些属性,如果有任何不同,Envers将为所有已审核属性编写一个新的审核记录,其中包含新的状态值


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

或者如果您使用Hibernate 4,则需要关闭普通积分器并编写自己的:或者如果您使用Hibernate 4,则需要关闭普通积分器并编写自己的: