按修订日期查询Hibernate Envers修订版

时间:2013-05-29 12:31:41

标签: hibernate hibernate-envers

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

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

我的revinfo表保存了一个时间戳,所以我知道数据存在。

2 个答案:

答案 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();