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 :
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;
	}
}
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
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);
		}
	}
}