Bonjour,
Merci encore à tchize_ pour m'avoir fait découvrir Hibernate Envers (cf ce post).
J'ai une petite question à ce sujet. J'ai créé une entité historique personnalisée pour ajouter le login de l'utilisateur et l'action à l'origine de la révision.
J'ai également créé un listener personnalisé.
Dans ce listener, je souhaite récupérer l'entité révisée. Est-ce possible ?
Voici ma classe révision :Et ma classe listener :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 @Entity @RevisionEntity(HistorisationListener.class) public class Historisation extends DefaultRevisionEntity { private static final long serialVersionUID = -5087706580347772924L; // Le login de l'utilisateur à l'origine de la modification private String loginUtilisateur = ""; // Origine de la modification private String origineHistorique = ""; public String getLoginUtilisateur() { return loginUtilisateur; } public void setLoginUtilisateur(String loginUtilisateur) { this.loginUtilisateur = loginUtilisateur; } public String getOrigineHistorique() { return origineHistorique; } public void setOrigineHistorique(String origine) { this.origineHistorique = origine; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public class HistorisationListener implements RevisionListener { @Override public void newRevision(Object historisationEntity) { SimpleDAO dao = null; SessionContext sessionContext = null; // Récupération du dao dao = JNDILocator.lookupBean(SimpleDAO.class); // Récupération du contexte if(null != dao){ sessionContext = dao.getSessionContext(); } // Mise à jour de l'historique if(null != sessionContext){ String loginUtilisateur = sessionContext.getCallerPrincipal().getName(); Historisation historisation = (Historisation) historisationEntity; historisation.setLoginUtilisateur(loginUtilisateur); } } }
Partager