3

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

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

所以请建议我哪种技术最适合?Hibernate Envers 能否应对复杂的业务场景?需要一些专家的建议。

4

1 回答 1

2

Envers 将跟踪您的实体的每一次更改,并允许您查看完整的历史记录,因为它创建了一个表来存储您的实体在任何修订时的状态。该表可能会很快变得非常大,具体取决于您的实体更改的频率和数量。但是,就像您上面所说的,Envers 可能是最简单的解决方案,因为您只需添加一些注释即可完成。

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

于 2013-07-23T21:55:02.920 回答