Ciao a tutti,
sono (quasi) nuovo del mondo JPA ed avrei bisogno di alcune spiegazioni.
Tema: Audit Control
L'obiettivo è quello di riportare su una tabella (DB relazionale) le modifiche occorse ai record delle altre tabelle presenti nel DB.
Utilizzo una gestione di tipo Container-Transaction-Management, quindi è l'EJB-Container a definire il perimetro della transazione.
Le logiche di business (ad es.) prevedono i seguenti passi:
1) leggo un'entità dal DB
2) modifico i dati dell'entità
3) salvo le modifiche
intorno all'azione di salvataggio (EntityManager.merge(entita)) ho inserito un Business-Method-Interceptor che ha lo scopo di confrontare l'entità passata con quella presente a DB per poterle raccogliere in una nuova entità (Logging) che dovrebbe popolare la tabella per l'audit control.
Il problema che riscontro sta nel fatto che questa comparazione tra le entità non viene eseguita, poichè l'entityManager non ri-esegue la ricerca su DB dei dati, ma rilegge l'entità presente nel persistence unit.
Com'è possibile risolvere questo problema?