我刚刚开始使用Hibernate Envers进行审核,我想知道是否有办法在两个日期之间获得课程的所有修订。
直到现在我正在使用:
AuditQuery query = reader.createQuery().forRevisionsOfEntity(MYCLASS.class, false, true);
query.add(AuditEntity.revisionNumber().le(reader.getRevisionNumberForDate(MYDATE)));
获取特定日期的修订,但有没有办法恢复所有修订,例如:MYDATE1和MYDATE2?
答案 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();