查询两个日期之间的所有Hibernate Envers修订版

时间:2014-02-06 00:07:08

标签: java hibernate hibernate-envers

我刚刚开始使用Hibernate Envers进行审核,我想知道是否有办法在两个日期之间获得课程的所有修订。

直到现在我正在使用:

AuditQuery query = reader.createQuery().forRevisionsOfEntity(MYCLASS.class, false, true);
query.add(AuditEntity.revisionNumber().le(reader.getRevisionNumberForDate(MYDATE)));

获取特定日期的修订,但有没有办法恢复所有修订,例如:MYDATE1和MYDATE2?

2 个答案:

答案 0 :(得分:5)

您可以使用between的{​​{1}}方法来应用“之间”约束。

http://docs.jboss.org/envers/api-new/org/hibernate/envers/query/criteria/AuditProperty.html

答案 1 :(得分:2)

如果您的@RevisionEntity上有时间戳属性,则可以使用如下查询:

    List<Object[]> revisions = (List<Object[]>) getAuditReader().createQuery()
                .forRevisionsOfEntity(MYCLASS.class, false, true)
                .add(AuditEntity.revisionProperty("timestamp").gt(startDate))
                .add(AuditEntity.revisionProperty("timestamp").lt(endDate))
                .getResultList();