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))代码>不工作?不,它只提供已删除的数据。正如我在问题中提到的,我也希望删除其他数据。非常感谢你,我对真、假的用法感到困惑,现在你的解释清楚了。