Bom dia,
Estou usando o Envers do Hibernate e já consegui fazer tudo funcionar como eu queria. No entanto gostaria de registrar a sessão do usuário nele e não estou conseguindo passar. O sistema já possui um login que funciona perfeitamente mas na hora de pegar a sessao na minha classe RevisionAudityListener ele vem null. Não consigo passar no construtor via parâmetro pq ele implementa a classe RevisionListener. Se alguém puder me ajudar...Obrigado!
Segue as classes
package br.gov.cemaden.bean;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.SessionScoped;
@Component
@SessionScoped
public class GerenteWeb {
private Gerente logado;
@SuppressWarnings("unused")
private String language;
public void login(Gerente gerente) {
this.setLogado(gerente);
}
public String getLogin() {
return getLogado().getLogin();
}
public boolean isLogado() {
return getLogado() != null;
}
public void logout() {
this.setLogado(null);
}
public Gerente getLogado() {
return logado;
}
public void setLogado(Gerente logado) {
this.logado = logado;
}
}
package br.gov.cemaden.audity;
import java.sql.Timestamp;
import org.hibernate.envers.RevisionListener;
import br.gov.cemaden.bean.GerenteWeb;
import br.gov.cemaden.util.FormataData;
public class RevisionAudityListener implements RevisionListener {
private GerenteWeb gerente;
FormataData fd = new FormataData();
@SuppressWarnings("unused")
private Object attr;
public void newRevision(Object attr) {
this.attr = attr;
RevisionAudity ra = (RevisionAudity) attr;
ra.setDt((Timestamp.valueOf(fd.getdatahora())));
ra.setUser(gerente.getLogin());
}
}