如标题中所示。我有一个包含许多字段的实体,但每次将此实体保存到数据库时,如果唯一更改的是“modificationTimestamp”,则envers会创建另一个版本事件。有没有办法忽略那个领域?但是如果任何其他字段发生变化,它也需要写入db。
最简单的方法是将@NotAudited
注释添加到模型中的该属性。这意味着该字段将不再用于增量比较,以确定实体是否已被修改,因此将不再触发要添加的审计行。
这也意味着您的审计数据会有一个小的不一致性,因为先前添加的条目将包含此modificationTimestamp
列中的值,其中添加注释后的行将开始包含空值,因为Envers不再跟踪此列。
如果您不需要较旧行中的值,则可以安全地从审计模式中删除该列,如果它的值从审计历史记录角度来看并不重要。
如果您需要较旧的值但是审计模式列是以某种方式使用非空约束创建的,则可能需要手动更改模式并允许它仅仅由于行为的更改而插入空值。