hibernate - Hibernate envers 获取已删除的行数据
问题描述
在我的应用程序中,我需要显示删除了哪些行。我需要找到特定类的已删除行详细信息。
到目前为止,我得到了一个返回已删除实体 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
,这样它不仅可以存储我上面提到的实体的值,还可以存储所有审计字段。这将允许您使用的查询返回一个实体实例,其中所有审计字段都根据删除前实体的外观填充。
推荐阅读
- javascript - JQuery .append() 内容不会留在屏幕上
- git - 取消跟踪文件并 gitignore 它,但在拉取时不要在服务器上删除它
- terraform - Terraform 模块 - 事后添加项目
- json - 为什么 AWS S3 GUI 将 { "_1": } 放在我的 JSON 文件周围?
- android - Dagger-Android @ActivityKey not found,如何显式创建子组件
- php - 带有 POP3 的 IMAP_OPEN 函数只返回 2016 年的电子邮件?
- sql - 创建引用 dbms 包的存储过程时出现 ORA-00904
- google-sheets-formula - ArrayFormula 与前行的总和
- sql - 检查两列值中的哪一个最接近计算值
- echo - 如何在zsh中回显裸连字符(`-`)?