Hibernate Envers - 是否是正确的审计选择?

时间:2013-07-17 17:57:00

标签: hibernate hibernate-envers

我正在做很多事情来为一个大项目做审计。该项目将完全基于Spring框架,使用JPA和Hibernate来完成数据映射部分。对于审计,我遇到了各种功能和技术。 使用Hibernate拦截器。 使用Hibernate事件侦听器。 Hibernate Envers 春天AOP。 我甚至尝试创建和维护自己的AUDIT表。

到目前为止,我认为Hibernate Envers是我最好的选择,因为它减少了手动编码,其版本控制功能非常有趣。由于这是一项相对较新的技术,我不太了解,在将其作为解决方案的一部分实施之前,我希望非常确定。

那么请建议我哪种技术最适合? Hibernate Envers能否处理复杂的业务场景?需要一些专家意见。

1 个答案:

答案 0 :(得分:1)

Envers将跟踪您实体的每个更改,并允许您查看完整的历史记录,因为它创建了一个表,用于在任何修订版本中存储实体的状态。根据您的实体更改频率和有多少实体,该表可以快速变大。但是,就像你上面所说的那样,Envers可能是最简单的解决方案,因为你只需要输入一些注释即可。

这主要取决于您的应用程序以及您要记录的内容。如果Envers太嘈杂或记录您不需要的额外信息,最好编写自己的代码来进行记录(或使用触发器)。