簡體   English   中英

Java,Hibernate,如何設置Envers,以便僅更改一個字段就不會創建新版本?

[英]Java, Hibernate, How to set Envers, so it won't create new versions if only one one field changed?

如標題中所示。 我有一個具有很多字段的實體,但是每次更改的唯一實體是“ modificationTimestamp”,則每次將該實體保存到數據庫時,envers都會創建另一個版本事件。 有什么辦法可以忽略這一領域? 但是,如果其他任何字段發生更改,也需要將其寫入db。

最簡單的方法是將@NotAudited批注添加到模型中的該屬性。 這意味着在增量比較中將不再使用該字段來確定是否已修改實體,因此將不再觸發要添加的審計行。

這也意味着你必須在你的審計數據一個小矛盾,因為將包含在這個值前項添加modificationTimestamp的列,其中,作為行添加注釋后,將開始包含值,因為Envers不再跟蹤此列。

如果您不需要舊行中的值,則可以安全地從審計模式中手動刪除該列,如果該列的值從審計歷史記錄的角度來看並不重要。

如果您需要較舊的值,但審計模式列是在某種程度上使用非空約束創建的,則可能僅由於行為更改而需要手動更改模式,並允許其插入空值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM