2013-05-29 51 views
1

我已經開始使用Hibernate Envers進行審計日誌記錄業務對象。 我已經閱讀了文檔,並且從我看到的所有示例中,查詢都是通過修訂版號完成的。根據修訂日期查詢Hibernate Envers版本

我想按修訂日期查詢,即獲得在特定日期或日期範圍發生的審計實體的所有行。 我這樣的事情可能嗎?

我的revinfo表持有一個時間戳,所以我知道數據在那裏。

回答

1

是的,那當然是可以的。您只需獲取與日期相對應的版本號。

這可以通過直接查詢修訂表或使用AuditReader.getRevisionForDate方法來實現。

0

使用審計閱讀器併爲您的日期添加查詢參數。該物業被稱爲時間戳。本示例使用包含開始日期和獨佔結束日期。

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