2012-10-09 38 views
2

我正在使用Hibernate Envers进行审计。更新后和插入后工作正常。Hibernate envers - 如何仅存储更新值

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

我只需要插入更新的值。

有没有可能做到这一点?

在此先感谢。

干杯!

回答

0

,如果你不配置envers监听后插入会发生什么?

我的意思是,如果你从你的配置取出插入柱监听?

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

或者,如果你正在使用Hibernate 4,您需要关闭正常积分,写自己:http://docs.jboss.org/hibernate/core/4.0/devguide/en-US/html/ch15。 HTML#d0e5519 – adamw

0

当你用注释的@Audited实体,你就控制在发生变化时Envers应检查其属性。然后将这些属性在旧状态和新状态之间进行比较,如果有任何差异,Envers将为所有审计属性编写一个新的审计记录和新的状态值。

换句话说,Envers不会写,只有你切换审核修改后的性能提供了新的审计行。如果任何审计属性发生变化,它将编写一个新的审计行和所有审计属性。