![](/img/trans.png)
[英]Hibernate Envers : How to check if a field has changed between two revisions?
[英]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.