Fala ae glr…seguinte estou tendo dificuldades para aplicar um filtro (Interceptor) com o VRpator. Estou seguindo a apostila da Caelum mas não estou fazendo o mesmo exemplo da apostila.
Eu tenho um DAO que uso para qualquer objeto, conforme código a seguir:
public class HibernateDAO<E> implements DAO<E> {
private Session sessao;
private Transaction transacao;
//Construtor cria uma sessao do Hibernate
public HibernateDAO(){
this.sessao = FabricaSessao.getSession(sessao);
}
public void beginTransaction() {
this.transacao = this.sessao.beginTransaction();
}
public void close() {
this.sessao.close();
this.sessao = null;
}
public void commit() {
this.transacao.commit();
this.transacao = null;
}
public boolean hasTransaction() {
return transacao != null;
}
public void rollBack() {
this.transacao.rollback();
}
//alguns CRUD e tal
}
Então preisaria implementar um Interceptor para verificar se alguma transação ficou em aberta:
public void intercept(LogicFlow flow) throws LogicException, ViewException {
//executa as logics
flow.execute();
//Verifica se Existem transações em aberto e realiza o Roll Back
if(HibernateDAO.this.hasTransaction()) //ISSO NÃO FUNCIONA
HibernateDAO.this.getTransaction().rollback(); //ISSO TB NÃO FUNCIONA
}
}
meu problema é : Como vou chamar a função hasTransaction sem que eu precise passar o tipo Genérico ? Se isso for possível.
Valews