我正在尝试将 Spring JPA 与 Envers 一起使用来跟踪所有实体的审计跟踪,以便我们可以回到某个时间点并检查实体的内容。我可以使用 spring-jpa-envers api 提供的基本功能,例如查找 a/ll 修订版。
但是是否有可能:
查询带有过滤器的修订,即应用实体字段的过滤器?我想我们可以在修订返回后应用过滤器,但最好从某个时间点找到修订
更新特定版本?以防我们过去有错误的修订并想要更正它。
问候非盟
我正在尝试将 Spring JPA 与 Envers 一起使用来跟踪所有实体的审计跟踪,以便我们可以回到某个时间点并检查实体的内容。我可以使用 spring-jpa-envers api 提供的基本功能,例如查找 a/ll 修订版。
但是是否有可能:
查询带有过滤器的修订,即应用实体字段的过滤器?我想我们可以在修订返回后应用过滤器,但最好从某个时间点找到修订
更新特定版本?以防我们过去有错误的修订并想要更正它。
问候非盟
经过一番谷歌搜索找到了答案:
Session session = (Session) entityManager.unwrap(Session.class);
AuditReader auditReader = AuditReaderFactory.get(session);
AuditQuery auditQuery = auditReader.createQuery().forRevisionsOfEntity(Country.class, true, false);
List<Country> resultList = auditQuery.add(AuditEntity.property("name").eq("Daenemark")).getResultList();
assertThat(resultList.size(), is(greaterThan(0)));