PearlJam
PearlJam

Reputation: 51

Querying all Hibernate Envers revisions between two dates

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?

Upvotes: 5

Views: 4975

Answers (2)

charlb
charlb

Reputation: 1249

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

Upvotes: 4

Amogh
Amogh

Reputation: 4573

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

Upvotes: 5

Related Questions