我在MySQL 5.5中使用Spring 3.0 + JPA2 + Hibernate 4.1 我希望在我的表中记录5个字段用于审计跟踪目的 - lastModifiedByUser,lastModifiedTime,createdByUser,createdTime,isActive
我没有删除表中的任何数据,只是将它们标记为isActive false。
帮助我在表格中记录这些审核字段的最佳工具是什么? 我想知道DB触发器是不是最好的主意,特别是因为还记录了修改/创建用户名。
答案 0 :(得分:0)
查看Envers,它是专为此而构建的,是Hibernate 4.x的一部分。您只需在类中添加@Audited注释,它就会自动处理实体的版本控制。
答案 1 :(得分:0)
不确定最近的工具,但很久以前我能够使用拦截器来做到这一点。
您可能还希望在Entity类中映射审核列。在将实体对象持久化到数据库之前,定义拦截器以在实体对象中填充这些属性。
示例审计拦截器详细信息可在hibernate中获得:Hibernate Interceptors: Audit。请按照步骤完成必要的工作。