Java 将删除的数据与其他数据一起包含到审核查询中

Java 将删除的数据与其他数据一起包含到审核查询中,java,hibernate,hibernate-envers,Java,Hibernate,Hibernate Envers,我的疑问如下 AuditQuery si_query = audQueryCreator.forRevisionsOfEntity(SecurityIdentifiers.class, false, false) .add(AuditEntity.revisionNumber().eq(revision_Id)); 上述查询不包含已删除的数据(修订类型为“2”的数据) 如果我添加以下代码 si_query.add(AuditEnt

我的疑问如下

AuditQuery si_query = audQueryCreator.forRevisionsOfEntity(SecurityIdentifiers.class, false, false)
                                .add(AuditEntity.revisionNumber().eq(revision_Id));
上述查询不包含已删除的数据(修订类型为“2”的数据)

如果我添加以下代码

si_query.add(AuditEntity.revisionType().eq(RevisionType.DEL));
然后它只获取我不想要的已删除数据

我想要删除的数据以及插入的数据和修改的数据

此查询带来除已删除数据外的所有其他数据


因此,请告诉我如何查询以包含已删除的数据。

问题在于您的用法,特别是最后一个参数,也可能是第二个参数

要删除结果中返回的行,必须将该方法的最后一个参数指定为
true
。该参数的方法java文档说明:

如果为true,则还将返回删除实体的修订。其他实体的修订类型为“删除”,除id字段外,不包含任何数据(所有字段均为空)

我的下一个关注点是您的预期结果对象类型。这与方法的第二个参数有关。该参数的方法java文档说明:

如果为true,则执行此查询时将返回实体列表,而不是三元素数组的列表

因此,问题是您是否希望返回的值列表是实际的已审核实体实例,还是希望它是一个
列表
,其中每个对象数组行都包含一组特定的值

通过指定
true
,结果是
List
,但
false
List

如果使用
false
,则每行将包括:

  • 实体实例
  • 修订实体实例。(修订号和日期)
  • 修订类型(添加、修改、删除)

  • HTH.

    不执行
    .add(AuditEntity.revisionNumber().eq(revision\u Id)).add(AuditEntity.revisionType().eq(revisionType.DEL))不工作?不,它只提供已删除的数据。正如我在问题中提到的,我也希望删除其他数据。非常感谢你,我对真、假的用法感到困惑,现在你的解释清楚了。