2013-05-29 6 views
1

Я начал использовать Hibernate Envers для ведения бизнес-журналов аудита. Я прочитал документацию и из всех примеров, которые я видел, запрос выполняется номером ревизии.Querying Hibernate Envers revision по дате изменения

Хотелось бы запросить дату ревизии, т. Е. Получить все строки проверяемого объекта, которые произошли в определенную дату или диапазон дат. Я такая вещь возможна?

В моей таблице revinfo хранится метка времени, поэтому я знаю, что данные есть.

ответ

1

Да, это, конечно, возможно. Вам просто нужно получить номера ревизий, соответствующие датам.

Это возможно либо путем прямого запроса к таблице ревизий, либо с использованием метода AuditReader.getRevisionForDate.

0

Используйте считыватель аудита и добавьте параметры запроса для ваших дат. Имущество называется timestamp. В этом примере используется открытая дата начала и исключительная дата окончания.

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(); 
Смежные вопросы