在我的应用程序中,我需要显示删除了哪些行。 我需要查找特定类的已删除行详细信息。
到目前为止,我得到了一个返回已删除实体 ID 的查询,如何获取所有实体字段?
final AuditQuery query = auditReader.createQuery().forRevisionsOfEntity(Partner.class, false, true);
query.add(AuditEntity.revisionType().eq(RevisionType.DEL));
final List<?> results = query.getResultList();
您拥有的查询是您想要的,但问题是默认情况下,Envers 不会在删除记录时捕获实体的状态。 默认情况下捕获的唯一信息是实体的修订、修订类型和主键值。
您需要在休眠配置中将org.hibernate.envers.store_data_at_delete
设置为true
,以便它不仅存储我上面提到的实体的值,而且存储所有审核字段。 这将允许您使用的查询返回一个实体实例,其中根据删除前实体的外观填充了所有审核字段。