Hibernate envers 获取删除的行数据

Hibernate envers get deleted row data

在我的应用程序中,我需要显示删除了哪些行。 我需要查找特定 class.

的已删除行详细信息

到目前为止,我得到一个 returns 已删除实体 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,这样它不仅会存储我上面提到的实体的值,还会存储所有审计字段。这将允许您正在使用的查询 return 一个实体实例,其中所有审计的字段都根据实体在删除之前的样子填充。