当前位置: 首页 > 面试题库 >

使用Hibernate Envers进行Spring Data JPA和Spring Boot审计

张鸿宝
2023-03-14
问题内容

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

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

所以我的问题是:

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

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

由于我是审核的新手,请让我知道上述问题。

谢谢。


问题答案:

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

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

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

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

如果您正在使用本机SQL或JPA的CriteriaUpdate/ CriteriaDelete操作来操作数据库记录,则 没有 Envers会
接受 这些更改。这是因为Hibernate不会针对那些批量或无状态操作引发事件,从而使Envers可以审核这些更改。



 类似资料:
  • 我有一个带有spring Boot(v2.3.3)和spring数据的spring web应用程序。我的评估表包含以下列: Id 我的用例是表中名称和地址的任何更改评估应该创建一个新行,版本以相同的id递增。 因此,基本上只有当地址或姓名更新时,才能在评估表中插入新记录。下面是一个示例: 现有记录: 例如,名称已更新为Ryan,应该有两行,如下所示: 因此,基本上,任何名称和地址的变化都应在评估表

  • SpringDataJpa中 Specification怎样使用in查询 实体类Menu.java如下 想通过roles属性做in查询,代码如下 错误如下: Parameter value [com.appmtce.pojo.entity.role.Role@20f81e2a] did not match expected type [java.util.Collection (n/a)] 我的S

  • 我目前正在从事一个利用Spring数据Neo4j的项目。每当创建节点时,我都希望创建一个包含创建日期和用户的引用审核节点。 我提出的一个解决方案是编写一个AOP方面,它与我的服务层的create方法挂钩。这对于没有级联的实体很好,但是级联的实体呢?它们没有在我的服务层中显式传递,因此我的AOP类不会拦截它们。JPA中是否有类似实体侦听器的概念,或者如何连接到该机制中?

  • 本文向大家介绍SpringBoot使用POI进行Excel下载,包括了SpringBoot使用POI进行Excel下载的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了SpringBoot使用POI进行Excel下载的具体代码,供大家参考,具体内容如下 使用poi处理Excel特别方便,此处将处理Excel的代码分享出来。 1.maven引用 2.service逻辑代码 3.contr

  • 我正在用Cucumber编写验收测试,我想使用H2数据库进行测试。 应用程序测试属性如下所示: 在目录resources/db/migration中,我有一个包含这些脚本的sql文件: 但是当我运行测试时,H2用默认格式创建模式,而不是使用脚本: 如您所见,所有VARCHAR都是使用255大小创建的,而不是真实值。 你能帮我把飞行道和H2整合起来吗? 谢谢!

  • 我想测试我的SpringBoot应用程序,它使用cassandra作为CrudRepository。我最终得到了 具有 和 这就导致了 如果我使用旧版本的cassandra-unit-Spring 它以NullPointerException结束,因为没有注入值repo。 来源https://github.com/StephanPraetsch/spring.boot.cassandra.unit