I have just started using Hibernate Envers for audit, and i will like to know if there is a way to get all the revisions of a class between two dates.
up until now i was using:
AuditQuery query = reader.createQuery().forRevisionsOfEntity(MYCLASS.class, false, true);
query.add(AuditEntity.revisionNumber().le(reader.getRevisionNumberForDate(MYDATE)));
to get the revisions of a particular date, but is there a way to recover all the revisions between for example: MYDATE1 and MYDATE2?
You can use between
method of AuditProperty
to Apply a "between" constraint.
http://docs.jboss.org/envers/api-new/org/hibernate/envers/query/criteria/AuditProperty.html
If you have a timestamp property on your @RevisionEntity you can use a query like this:
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();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With