我正在使用 Hibernate Envers 4.2.21.FINAL。由于我只想跟踪某些属性的更改,因此我添加了注释
@Audited(withModifiedFlag = true)
在他们。正确创建了标志列“propname_MOD”,但问题是当我保存一个对象时,所有 MOD 标志都设置为 true,而不仅仅是我修改的属性。有谁知道如何解决这个问题?
更新
我注意到在类org.hibernate.envers.event.EnversPostUpdateEventListenerImpl
中,当实例化以下对象时
AuditWorkUnit workUnit = new ModWorkUnit(
event.getSession(),event.getPersister().getEntityName(),getAuditConfiguration(),
event.getId(),event.getPersister(),newDbState,event.getOldState() );
event.getOldState()
为空,但 IMO 它不应该为空。这就是 Envers 每次都添加新版本的原因。