Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Persistance
Persistance Forum d'entraide pour la persistance en Java : base de donnée, xml, mapping orienté objet, ... Posez vos questions sur iBatis, JDO, XmlBeans, Castor, JAXB, XStream, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/11/2012, 11h18   #1
andlio
Membre régulier
 
Homme Lionel ANDRE
Inscription : avril 2005
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Lionel ANDRE
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : avril 2005
Messages : 304
Points : 81
Points : 81
Par défaut Hibernate Envers : récupérer le contexte de la transaction

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 :
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 :
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);
		}
	}
}
andlio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h39.


 
 
 
 
Partenaires

Hébergement Web