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

Include Deleted Data along with other data into Audit Query

我正在查询如下

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 文档说:

If true, also revisions where entities were deleted will be returned. The additional entities will have revision type "delete", and contain no data (all fields null), except for the id field.

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

If true, instead of a list of three-element arrays, a list of entities will be returned as a result of executing this query.

所以问题是您是否希望返回的值列表是实际的审计实体实例,或者您是否希望它是 List<Object[]> 其中每个对象数组行包含一组特定的值。

通过指定 true,结果是 List<Object>falseList<Object[]>

如果您使用 false,每行将包含:

  1. 实体实例。
  2. 修订实体实例。 (修订号和日期)。
  3. 修订类型(ADD、MOD、DEL)。

HTH.