2012-10-09 52 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不會寫,只有你切換審覈修改後的性能提供了新的審計行。如果任何審計屬性發生變化,它將編寫一個新的審計行和所有審計屬性。