2016-04-28 18 views
1

Ich habe an der Anwendungsüberwachung gearbeitet und erfolgreich den Hibernate Envers 4.3.11 verdrahtet, um die Erstellung, Aktualisierung und Löschung zu erfassen, aber ich kann keine Dokumentation zum Auditing von Lesevorgängen von Entitäten finden.Wie kann ich Hibernate-Lesevorgänge mit Envers überprüfen?

Ist dies mit Envers möglich oder wäre es am besten, sich auf log4j oder ähnliches zu verlassen?

Antwort

0

Ich glaube, es ist nicht möglich. Wir haben einen ähnlichen Anwendungsfall und verwenden Intercepter, um Audit-Aufzeichnungen zu unserem Service zu generieren.

0

Ja, mit Hibernate Envers ist es möglich, Lesevorgänge von Entitäten zu überwachen. Hier ist ein Beispiel zum Lesen eines Datensatzes aus der Audit-Tabelle für die 1. Revision.

/*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

Dies sieht aus wie eine zuvor geprüfte Aufzeichnung zu finden. Ich möchte nach jedem Lesen einer Entität einen Datensatz in den Audit-Tabellen speichern. Ich habe geforscht und es scheint nicht, dass Envers diese Operation unterstützen werden. Wahrscheinlich müssen Sie Anfragen abfangen und direkt in eine Datei oder Datenbank einloggen. – wsams