Hibernate + filter + Open Session in View
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 ?
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
Curtidas 0