Hibernare使用Spring数据JPA和Spring Boot来进行审计

Khu*_*shi 2 hibernate auditing hibernate-envers spring-data-jpa spring-boot

我正在为我的项目使用Spring数据JPA和Spring Boot.

我有对象的审核要求(创建/更新/删除).我可能还需要获取特定对象的审核修订版.我已经在网上检查过Spring数据无法获得修订并且不跟踪删除?

所以我的问题是:

1)我们可以将Hibernate envers与Spring数据JPA集成吗?

2)我们有本机查询,HQL和Spring数据JPA更新/保存/删除动态查询,那么Hibernate envers能够跟踪所有对象吗?

由于我是审计新手,请告诉我上述问题.

谢谢.

Nar*_*ros 7

我们可以将Hibernate envers与Spring数据JPA集成吗?

是的,Hibernate Envers直接与Hibernate ORM直接集成,而且由于Spring Data JPA已经与Hibernate ORM集成,因此您可以开箱即用.

我们有本机查询,HQL和Spring数据JPA更新/保存/删除动态查询,那么Hibernate envers能够跟踪所有对象吗?

只要您通过会话保存/更新或EntityManager的持久/合并操作操作实体,Hibernate将为Envers引发必要的事件以跟踪您的更改.

如果您使用Native SQL或JPA的CriteriaUpdate/ CriteriaDeleteoperations来操作数据库记录,那么没有 Envers将不会拾取这些更改.这是因为Hibernate不会为允许Envers审核这些更改的批量或无状态操作引发事件.


JUA*_*A M 7

这是可能的,很容易!我使用这些技术做了一个示例项目:Spring引导,Spring数据jpa和带有Envers的hibernate来审计一些带有关系的表.

以下是示例:https://github.com/juanca87/example-envers

我希望它对您有用,如果您有任何疑问,请告诉我.