Hibernate Envers - 获取已更改的字段

RNJ*_*RNJ 14 java audit hibernate hibernate-envers

我有一个相当复杂的数据库结构,我正在尝试审核.目前我运行Envers并审核对每个对象所做的更改.这非常有效!

我现在想在UI上显示一些审计信息.对象/表格变得非常复杂,因此我一直在寻找一种方法来查看审计中哪些字段已更改.当前Envers存储标记有修订ID的每个对象的快照.我可以查看每个对象的修订版,然后手动查询以查看已更改的内容,但我想知道是否有一种方法可以Envers存储哪些字段已更改.这可能吗?我从2011年发现了这个链接,它建议手动检查每个对象字段.我关心的是速度.我有很多相关的对象,我可能只有一个更新的字段.我将不得不查询很多字段以找到已更改的字段.

是否可以存储已更改的字段?

谢谢

编辑

我应该说我正在使用REVCHANGES表,所以我可以看到在什么版本中发生了什么变化但是这只是在实体级别而不是字段级别

ada*_*amw 10

在较新的Envers版本中,您可以使用布尔标志跟踪每个修订版本中更改的属性.看到:

http://docs.jboss.org/hibernate/core/4.1/devguide/en-US/html/ch15.html#envers-tracking-properties-changes

  • 这个问题是,据我所知,没有办法以编程方式检查这些信息.您只能在审计查询中使用它.这有助于限制您带来的修订,但根本没有帮助显示发生的事情的日志.如果我理解正确的原始海报,并且对于我自己的问题,我需要一种方法来在加载修订版本之后访问这些标记,这样我就可以清楚地向用户显示更改的内容.否则日志是无用的,因为需要很长时间才能弄清楚改变了什么. (5认同)