我们的团队坚持在Hibernate Envers和Spring AOP之间做出选择。基本上,我们希望审核数据库事务,尤其是当用户从数据库中删除对象时。但是,我们不希望审核所有表。我们知道使用Spring AOP,我们可以将其作为一个跨领域的问题,每当在DAO中执行delete()
方法时,我们就可以记录删除。我们的问题是: Hibernate Envers是否更容易,更适合这个问题,还是Spring AOP是一个可接受的解决方案?任何方向,有一些证据,都会得到我们团队的高度赞赏。
答案 0 :(得分:2)
我刚开始使用Hibernate Envers进行审核,到目前为止我对它非常满意。
优点:
我们字面上不必写一行代码。
2.它还通过RevisionEvent自动捕获userName和timestamp,这是一个非常简单的配置
3.代码遵循JPA注释,而不是休眠
4.如果有人正在使用休眠,那么为什么不使用它的整个功能呢
5.此功能(Envers)专门用于捕获审计。人们不断致力于升级并使其更加用户友好
6.One可以编写自己的事件监听器,如更新,删除,插入等:
缺点:
1.创建大量AUD_表。但是我们可以配置我们想要审核的表
2.它永远不会自动捕获HQL查询。