0

我正在使用 Spring 3.0 + JPA2 + Hibernate 4.1 和 MySQL 5.5 我希望在我的表中记录 5 个字段以用于审计跟踪目的 - lastModifiedByUser、lastModifiedTime、createdByUser、createdTime、isActive

我没有从表中删除任何数据,只是将它们标记为 isActive false。

帮助我在表格中记录这些审计字段的最佳工具是什么?我想知道数据库触发器是否不是最好的主意,特别是因为还记录了修改/创建用户名。

4

2 回答 2

0

查看 Envers,它就是为此而构建的,并且是 Hibernate 4.x 的一部分。您只需向您的类添加一个 @Audited 注释,它会自动处理您的实体的版本控制。

于 2012-10-20T04:34:08.377 回答
0

不确定最近的工具,但很久以前我就可以使用拦截器来做到这一点。

您可能还想在 Entity 类中映射审计列。在将实体对象持久化到数据库之前,定义一个拦截器以在实体对象中填充这些属性。

示例 Audit 拦截器详细信息可在 hibernate 中获得:Hibernate Interceptors: Audit。请按照步骤完成所需的工作。

于 2012-10-20T04:35:23.480 回答