当前位置: 首页 > 知识库问答 >
问题:

Hibernate Envers审核查询-仅检索所有实体的最新版本

戚俊健
2023-03-14

我想检索最近更改的所有实体(即数据库中的所有内容)的所有最新版本
以下查询获取特定实体“MyEntity”的修订

queryObject=auditReader。createQuery()。用于修改实体(MyEntity.class,false,true)。addOrder(AuditEntity.revisionNumber()。desc())

但是我需要一种机制来获取所有实体的记录,而不管特定的实体类型。

共有1个答案

狄誉
2023-03-14

查看org。冬眠恩弗斯。跟踪修订版中更改的实体。

此设置导致针对修订实体创建一个连接表,其中将跟踪每个修订号的基于字符串的实体名称集。有了这些信息,您应该能够使用AuditReader#createQuery()API构建必要的查询来迭代所有更改。

在伪代码中,它类似于:

List<Number> revisions = // create AuditQuery to get all revision numbers
for ( Number revision : revisions ) {
  DefaultTrackingModifiedEntitiesRevisionEntity revisionEntity = // create query to get revision entity
  for ( String entityName : revisionEntity.getModifiedEntityNames() ) {
    // create query based on entityName + revisionNumber
  }
}

 类似资料:
  • 问题内容: 我正在使用NHibernate,并且正在寻找一种解决方案,该解决方案将允许我审核实体中所有字段的更改。我希望能够为每个实体(例如,用户-> UsersHistory)创建一个历史表,该表将具有与用户表相同的结构,并具有其他字段,例如操作类型(更新,删除),进行更改的用户的userid等。不想为每个实体定义此类。我正在寻找类似的东西(即),因为这些条目不属于我的域,仅用于准备对该实体所做

  • 我在试图让被审计的实体引用未被审计的实体时遇到问题。在我们的应用程序中,某些实体在没有使用hibernate的情况下被引导,这些实体是我们的元模型,不需要被审计。 如果我执行代码: 一切都很顺利,但是如果我试图获得B的版本,就会出现错误: 组织.Hibernate.对象不发现例外:不存在具有给定标识符的行 [元foo] Envers通过对metafoo实体的惰性引用成功地查找了B实体。然而,当尝试

  • 问题内容: 我有Spring MVC + JPA应用程序。 我的应用程序中有几个实体在不断变化。我希望能够审核此更改。我发现有一个注释可以跟踪对某些字段或整个实体的更改。我想知道是否有任何方法可以配置此跟踪选项- 我希望能够跟踪更改的内容以及更改的人。还可以对SQL 1个表中的多个实体进行更改吗?还可以跟踪- 实体字段的变化吗? 谢谢 问题答案: 是的,您可以跟踪所做的更改,更新的用户和时间戳。

  • 问题内容: 文件夹中的文档很少,我想检查该文件夹中的所有文档是否都已编制索引。为此,对于该文件夹中的每个文档名称,我想循环遍历ES中索引的文档并进行比较。所以我想检索所有文档。 有喜欢同一个问题的其他几个可能的重复[检索AElasticSearch)NEST查询所有记录,并在此处输入链接的描述,但他们没有帮助我的文档已经从那个时候改变了。(有什么关于扫描当前文档中) 我尝试使用。但是根据文档,将检

  • 问题内容: 这是我的情况,我有两个基本的POJO,并给出了一个简单的休眠映射: 我的SQL查询返回的行看起来像这样: 我的休眠查询如下所示: 这是每个部分的内容:Hibernate文档的18.1.3:http : //docs.jboss.org/hibernate/core/3.6/reference/zh- CN/html/querysql.html#d0e17464 我希望在清单中得到的是2

  • 问题内容: 这是我的情况,我有两个基本的POJO,并给出了一个简单的hibernate映射: 我的SQL查询返回的行看起来像这样: 我的hibernate查询如下所示: 这是每个部分的内容:Hibernate文档的18.1.3:http : //docs.jboss.org/hibernate/core/3.6/reference/zh- CN/html/querysql.html#d0e1746

  • 我正在尝试使用查询检索dynamodb表中的所有项。下面是我的代码: 但是,我收到以下错误: 我的代码非常简单,出自boto dynamodb2文档,因此我不确定为什么会出现上述错误。任何见解都将受到赞赏(这是新的,有点迷失)。谢谢 编辑:我有一个散列键和一个范围键。我能够通过特定的哈希键进行查询。例如 但我如何检索所有项目?