使用 Hibernate Envers 进行 Spring Data JPA 和 Spring Boot 审计 [英] Spring Data JPA and Spring Boot auditing with Hibernate Envers

查看:34
本文介绍了使用 Hibernate Envers 进行 Spring Data JPA 和 Spring Boot 审计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am using Spring Data JPA and Spring Boot for my project.

我对对象有审计要求(创建/更新/删除).我可能也需要获取特定对象的审计修订版.我在网上查过 Spring Data Envers 无法获得修订并且不跟踪删除?

I have Audit requirement for Objects(Create/Update/Delete). I may need to get Audit revisions for particular objects too. I have checked on net that Spring Data Envers cant get revisions and doesn't track deletions?

所以我的问题是:

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

1) Can we integrate Hibernate Envers with Spring data JPA?

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

2) We have native queries, HQLs and Spring data JPA update/save/delete dynamic queries, so would Hibernate envers be able to track object for all?

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

As I am new to Auditing , please let me know about above questions.

谢谢.

推荐答案

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

Can we integrate Hibernate envers with Spring data JPA?

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

Yes, Hibernate Envers specifically integrates directly with Hibernate ORM and since Spring Data JPA already integrates with Hibernate ORM, you get this out-of-the-box.

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

We have native queries, HQLs and Spring data JPA update/save/delete dynamic queries, so would Hibernate envers be able to track object for all?

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

As long as you're manipulating entities through the Session save/update or the EntityManager's persist/merge operations, Hibernate will raise the necessary events for Envers to track your changes.

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

If you are using Native SQL or JPA's CriteriaUpdate/CriteriaDelete operations to manipulate database records, then no Envers will not pickup those changes. That is because Hibernate will not raise an event for those bulk or stateless operations allowing Envers to audit those changes.

这篇关于使用 Hibernate Envers 进行 Spring Data JPA 和 Spring Boot 审计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆