我记录了对某些实体的所有更改的历史记录,并且即将实现类似于Envers的机制来自动处理这个问题。我的问题是是否使用 Hibernate拦截器或它们的事件系统?
拦截器似乎更简单一些,可以满足我的所有需求。Hibernate 自己的文档建议使用拦截器来“跟踪审计信息”。但是他们的审计信息不在每个实体的伴随表中,Envers 使用我想象的事件系统是有原因的。
我正在使用 Spring 3.0 和 Hibernate 3.5(最新版本)。
更新:数据库触发器不适用于这种情况。我很想听听关于休眠拦截器与审计跟踪/更改历史事件的想法。