3

我已经开始使用 Hibernate Envers 来审计日志记录业务对象。我已经阅读了文档,并且从我看到的所有示例中,查询是通过修订号完成的。

我想按修订日期查询,即获取在特定日期或日期范围内发生的被审计实体的所有行。我这样的事情可能吗?

我的 revinfo 表包含一个时间戳,所以我知道数据在那里。

4

2 回答 2

4

是的,这当然是可能的。您只需要获取与日期相对应的修订号。

这可以通过直接查询修订表或使用该AuditReader.getRevisionForDate方法来实现。

于 2013-05-29T19:54:04.770 回答
3

使用审计阅读器并为您的日期添加查询参数。该属性称为时间戳。此示例使用包含开始日期和不包含结束日期。

 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();
于 2017-11-09T04:00:35.717 回答