Pessoal,
Para quaisquer dúvidas ou esclarecimentos sobre o artigo “Desmistificando o Hibernate Envers em 10 passos” presenta na revista MundoJ edição 58.
Não entendi…
Você quem escreveu e vai tirar dúvidas de quem perguntar? É isso?
Hebert,
Eu e meu amigo Bruno que escrevemos o artigo, neste fórum estaremos tirando dúvidas sobre o artigo.
[quote=lfernandez]Hebert,
Eu e meu amigo Bruno que escrevemos o artigo, neste fórum estaremos tirando dúvidas sobre o artigo.[/quote]Aaa ta.
Legal, parabéns. [=
[quote=lfernandez]Pessoal,
Para quaisquer dúvidas ou esclarecimentos sobre o artigo “Desmistificando o Hibernate Envers em 10 passos” presenta na revista MundoJ edição 58.[/quote]
Amigo, estou com um problema no envers, para criar um campo na tabela Revisions…
Estou usando o Envers do Hibernate, está funcionando, salvando nas tabelas *AUD.
Porem preciso customizar o RevisionListener, para salvar o nome do usuario que fez a alteração.
Para isso criei uma classe e implementei a RevisionListener.
E sobrescrevi o método newRevision.
Até ai tudo bem.
O problema é que neste ponto, eu não tenho o nome do usuario para setar.
O nome esta na sessão, porem neste ponto não tenho acesso a ela.
Estou usando struts 1 e spring (não estou usando spring security)
@Override
public void newRevision(Object arg0) {
RevisionVO rev = (RevisionVO) arg0;
rev.setUsername("Teste"); //Nesse ponto não consigo pegar o nome, pois ele está na sessão. Existe outra forma?
}
Resolvido, assim é possivel pagar qq obj da sessão.
public class RevisionListener implements org.hibernate.envers.RevisionListener {
@Override
public void newRevision(Object arg0) {
UserInformation userInformation = (UserInformation) getSession().getAttribute("userInformation");
RevisionVO rev = (RevisionVO) arg0;
rev.setUsername(userInformation.getUserLogin());
System.out.println("Dentro do Listener");
}
private HttpServletRequest getRequest() {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
return requestAttributes.getRequest();
}
private HttpSession getSession() {
return getRequest().getSession();
}
}
No web.xml tem q ter a configuração:
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>