Domanda

Sono già usando Hibernate Envers a enti di revisione contabile sono aggiornati da un utente tramite l'interfaccia utente; Tuttavia, ho anche job asincroni in esecuzione in background e vorrei controllare quelli pure con Envers. Ora, per l'interfaccia utente, a monitorare che HttpRequest ha reso il cambiamento che mi dà la data, utente, sessione, ecc Per i processi in background, vorrei rilevare la data il lavoro è stato eseguito così come il lavoro esatto che modificò (categoria di lavoro).

E 'possibile configurare 2 enti di revisione, 1 per l'interfaccia utente, e 1 per i cambiamenti del sistema?

Walter

È stato utile?

Soluzione

Non ho ancora testato questo fuori, ma sto semplicemente facendo il seguente:

@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;

   ...
}

Poi, in ogni ascoltatore, io faccio quello che devo fare per impostare queste proprietà. Vorrei ora essere in grado di tenere traccia di come un'entità come modificato, se un utente ha fatto il cambiamento (e che cosa richiesta è legato in), o se il sistema ha cambiato il soggetto, che lavoro è responsabile per il cambiamento. Sarei la memorizzazione di più proprietà in SystemRevision di questo, molto probabilmente il nome di argomenti e metodo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top