如何在使用休眠时创建自定义字段

时间:2012-06-05 15:34:16

标签: java spring hibernate auditing change-tracking

我正在使用spring 3.1,hibernate 4开始一个新项目,并且需要跟踪应用程序上的任何活动。活动跟踪示例who changed what? from what to what?at which time?我已经阅读了有关hibernate anvers的入门教程。对我来说,似乎更多的是数据历史而不是活动跟踪,除非我根本没有得到它。

有没有办法向该* _aud表添加自定义字段以插入更多用户定义的表。比如date_createdlast_modifiedcreated_byupdated_by有自己的databeforedataafter种类的字段。所以基本上我想添加{ {1}},createdby向anvers创建了表

有没有办法做到这一点。如果有,请指出我正确的资源。

感谢阅读。

1 个答案:

答案 0 :(得分:2)

在Envers中,每个“production”表都有一个相应的* _AUD表,用于存储实体的历史状态。还有一个全局REVINFO(org.hibernate.envers.DefaultRevisionEntity)表,其中包含修订号,时间戳和自定义用户定义列。可以在文档中找到显示如何扩展DefaultRevisionEntity的示例。目前没有可能自定义* _AUD表,但是Envers应该回答你提出的所有问题。

  1. 谁改变了什么? - 将用户凭据存储在REVINFO表中。
  2. 从什么到什么? - 这是一个非常普遍的问题:)。尝试浏览org.hibernate.envers.AuditReaderorg.hibernate.envers.query.AuditQueryCreator
  3. 哪个时间? - 时间戳存储在REVINFO表中。此时间戳反映了用户提交更改的时间。