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

Noa*_*evo 3 hibernate hibernate-envers

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

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

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

ada*_*amw 5

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

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


Ste*_*gin 5

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

 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();
Run Code Online (Sandbox Code Playgroud)