2016-04-28 140 views
1

我一直在進行應用程序審計,併成功地連接了Hibernate Envers 4.3.11以捕獲創建,更新和刪除,但我無法找到關於審計實體讀取的任何文檔。如何審覈Hibernate讀Envers?

Envers可能嗎?還是最好依靠log4j或類似的東西?

回答

0

我相信這是不可能的。我們有類似的用例,我們使用intercepters來生成我們服務的審計記錄。

0

是的,Hibernate Envers可能會審計實體的讀取。 以下是從第一版修訂表中讀取記錄的示例。

/*Audit Reader*/ 

public AuditReader getAuditReader() { 
     return AuditReaderFactory.get(getCrntSession()); 
    } 

/*The method to read a record from an entity*/ 

Integer revisionNumber = (Integer) getAuditReader().createQuery() 
       .forRevisionsOfEntity(Employee.class, false, true) 
       .addProjection(AuditEntity.revisionNumber().min()) 
       .getSingleResult(); 

     AuditReader reader = getAuditReader(); 
     Employee emp=reader.findRevision(Employee.class, (Number)revisionNumber); 

/* and if Employee has an createdDate record , we can read it using below*/: 
     System.out.println(emp.getCreatedDate()); 
+1

這看起來像找到以前審計過的記錄。我想在每次讀取實體後在審計表中存儲一條記錄。我一直在研究,看來envers不會支持這個操作。可能將不得不攔截請求並直接登錄到文件或數據庫。 – wsams

相關問題