【发布时间】:2012-09-29 19:32:42
【问题描述】:
我正在使用 Hibernate Envers 进行审计。更新后和插入后工作正常。
我有一个要求,我只需要审计审计表中的更新列(例如employee_aud)。 默认情况下,envers 会将整个持久化实体插入到审计表中。
我只需要插入更新的值。
有没有可能做到这一点?
提前致谢。
干杯!
【问题讨论】:
标签: hibernate hibernate-envers post-update
我正在使用 Hibernate Envers 进行审计。更新后和插入后工作正常。
我有一个要求,我只需要审计审计表中的更新列(例如employee_aud)。 默认情况下,envers 会将整个持久化实体插入到审计表中。
我只需要插入更新的值。
有没有可能做到这一点?
提前致谢。
干杯!
【问题讨论】:
标签: hibernate hibernate-envers post-update
如果你不为后插入配置 envers 监听器会发生什么?
我的意思是如果你从你的配置中取出插入后的监听器?
<listener class="org.hibernate.envers.event.AuditEventListener" type="post-insert"/>
【讨论】:
当您使用 @Audited 注释实体时,您可以控制 Envers 在发生更改时应检查哪些属性。然后将这些属性在新旧状态之间进行比较,如果有任何差异,Envers 将使用所有已审计属性的新状态值写入新的审计记录。
换句话说,Envers 不会编写新的审核行,其中仅包含您为审核而切换的修改后的属性。如果其中任何一个发生更改,它将写入一个包含所有已审计属性的新审计行。
【讨论】: