Spring + JPA + Hibernate应用程序的最佳审计跟踪机制

时间:2012-10-20 04:31:26

标签: spring hibernate jpa-2.0

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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