我已经开始将Hibernate Envers用于审计日志记录业务对象。 我已经阅读了文档,从我看到的所有示例中,查询都是通过修订号完成的。
我想按修订日期查询,即获取在特定日期或日期范围内发生的审计实体的所有行。 我这样的事情可能吗?
我的revinfo表保存了一个时间戳,所以我知道数据存在。
答案 0 :(得分:1)
是的,这当然是可能的。您只需要获取与日期对应的修订号。
可以通过直接查询修订表或使用AuditReader.getRevisionForDate
方法来实现。
答案 1 :(得分:0)
使用审核阅读器并为您的日期添加查询参数。该属性称为 timestamp 。此示例使用包含性开始日期和独占结束日期。
List<Object[]> revisions = (List<Object[]>) getAuditReader().createQuery()
.forRevisionsOfEntity(YourEntityClass.class, false, true)
.add(AuditEntity.revisionProperty("timestamp").ge(startDate))
.add(AuditEntity.revisionProperty("timestamp").lt(endDate))
.getResultList();