Hibernate + filter + Open Session in View

Java

12/09/2012

Eu tenho uma aplicação em que eu desenvolvi estudando em um livro, onde eu trabalho em Open Session in View, mas o filtro pelo que eu vi ele executa uma instrução e grava, mas existe tabelas que estão interligados, ou seja, não pode gravar sem que tudo esteja correto. Em delphi eu inicio a transação e só no final eu finalizo caso de tudo certo, dando um commit, mas do jeito que o livro ensinou ele executa um comando sobre uma classe e grava e depois comita, talvez seja porque não entendi direito, Vou mandar a minha classe filter
public class ConexaoHibernateFilter implements Filter {

private SessionFactory sf;

public void init(FilterConfig config) throws ServletException {
this.sf = HibernateUtil.getSessionFactory();
}

public void destroy() {
}

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws ServletException {

try {

this.sf.getCurrentSession().beginTransaction();

chain.doFilter(servletRequest, servletResponse);

this.sf.getCurrentSession().getTransaction().commit();
this.sf.getCurrentSession().close();

} catch (Throwable ex) {
try {
if (this.sf.getCurrentSession().getTransaction().isActive()) {
this.sf.getCurrentSession().getTransaction().rollback();
}
} catch (Throwable t) {
t.printStackTrace();
}
throw new ServletException(ex);
}
}

}
Alguém pode me ajudar ?
Jose Boas

Jose Boas

Curtidas 0
POSTAR