Frage

Ich verwende bereits Hibernate Envers zu -abschlussprüfungsgesellschaften die von einem Benutzer über die Benutzeroberfläche aktualisiert werden; aber ich habe auch asynchrone Aufträge im Hintergrund laufen und möchte diejenigen prüfen, wie gut Envers verwenden. Nun, für die UI, ich verfolgen, welche Httprequest die Änderung vorgenommen hat, die mir gibt das Datum, Benutzer, Sitzung, etc. Für die Hintergrundjobs, würde Ich mag das Datum verfolgen den Job sowie die genauen Auftrag ausgeführt wurde, dass es geändert (Jobklasse).

Ist es möglich, die Einrichtung 2 -abschlussprüfungsgesellschaften, 1 für die Benutzeroberfläche, und 1 für die Systemänderungen?

Walter

War es hilfreich?

Lösung

Das habe ich noch nicht getestet, aber ich tue einfach die folgenden:

@RevisionListener(SystemRevisionListener.class)
@Entity
public class SystemRevision extends AbstractRevision
{
   @Column(nullable = false, updatable = false)
   protected QuartzTriggerHandle job;

   @Column(nullable = false, updatable = false)
   protected Class jobClass;

   ...
}



@RevisionListener(WebRevisionListener.class)
@Entity
public class WebRevision extends AbstractRevision
{
   @ManyToOne(optional = false)
   @JoinColumn(nullable = false, updatable = false)
   protected HttpRequest httpRequest;

   ...
}

Dann in jedem Zuhörer, das tue ich, was ich tun müssen, um diese Eigenschaften zu setzen. Ich soll nun in der Lage sein, wie ein Unternehmen zu verfolgen, wie geändert, wenn ein Benutzer die Änderung tut (und was verlangt sie ist gebunden in), oder wenn das System die Einheit geändert wird, welche Aufgabe ist es für die Änderung verantwortlich. Ich würde mehr Objekte im SystemRevision als diese Speicherung, höchstwahrscheinlich die Argumente und Methodennamen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top