Duvida ao fazer rollback

pessoal quando abro uma transação eu fasso assim (não esta dando problema) é só uma duvida

        getSession().clear();        
        try {            
            getSession().beginTransaction();
            ..
            ..
            ..
            ..
            getSession().getTransaction().commit();
            getSession().flush();
        } catch (HibernateException e) {//<<<<<<<coloquei duas classes para evitar que cause um erro que não seje de hibernate e não faça o rollback
            operacao = false;
            getSession().getTransaction().rollback();
            e.printStackTrace();
        } catch (Exception e) {
            operacao = false;
            getSession().getTransaction().rollback();            
        }

existe a classe Throwable que é o pai de todas, qual classe vcs recomendariam, lembrando que eu não quero tratar os erros eu quero apenas garantir que qualquer tipo de erro vai dar rollback

[quote=arthurminarini]pessoal quando abro uma transação eu fasso assim (não esta dando problema) é só uma duvida

        getSession().clear();        
        try {            
            getSession().beginTransaction();
            ..
            ..
            ..
            ..
            getSession().getTransaction().commit();
            getSession().flush();
        } catch (HibernateException e) {//<<<<<<<coloquei duas classes para evitar que cause um erro que não seje de hibernate e não faça o rollback
            operacao = false;
            getSession().getTransaction().rollback();
            e.printStackTrace();
        } catch (Exception e) {
            operacao = false;
            getSession().getTransaction().rollback();            
        }

existe a classe Throwable que é o pai de todas, qual classe vcs recomendariam, lembrando que eu não quero tratar os erros eu quero apenas garantir que qualquer tipo de erro vai dar rollback [/quote]

Exception vc nunca terá, visto que as exceptions são avisadas quando vai ter…

se quiser garantir algo a mais que o hibernate não tenha previsto use RuntimeException… no lugar de exception

faça assim

getSession().clear(); try { getSession().beginTransaction(); .. .. .. .. getSession().getTransaction().commit(); getSession().flush(); } catch (HibernateException e) { operacao = false; getSession().getTransaction().rollback(); // e.printStackTrace(); <== não faça isso Logger.getLogger(getClass()).warn("this transaction was not commited",e); //<== logar é melhor } catch (RuntimeException e) { operacao = false; getSession().getTransaction().rollback(); Logger.getLogger(getClass()).erro("unexpected exception, transaction was not commited",e); }

[quote=Lavieri][quote=arthurminarini]pessoal quando abro uma transação eu fasso assim (não esta dando problema) é só uma duvida

        getSession().clear();        
        try {            
            getSession().beginTransaction();
            ..
            ..
            ..
            ..
            getSession().getTransaction().commit();
            getSession().flush();
        } catch (HibernateException e) {//<<<<<<<coloquei duas classes para evitar que cause um erro que não seje de hibernate e não faça o rollback
            operacao = false;
            getSession().getTransaction().rollback();
            e.printStackTrace();
        } catch (Exception e) {
            operacao = false;
            getSession().getTransaction().rollback();            
        }

existe a classe Throwable que é o pai de todas, qual classe vcs recomendariam, lembrando que eu não quero tratar os erros eu quero apenas garantir que qualquer tipo de erro vai dar rollback [/quote]

Exception vc nunca terá, visto que as exceptions são avisadas quando vai ter…

se quiser garantir algo a mais que o hibernate não tenha previsto use RuntimeException… no lugar de exception

faça assim

getSession().clear(); try { getSession().beginTransaction(); .. .. .. .. getSession().getTransaction().commit(); getSession().flush(); } catch (HibernateException e) { operacao = false; getSession().getTransaction().rollback(); // e.printStackTrace(); <== não faça isso Logger.getLogger(getClass()).warn("this transaction was not commited",e); //<== logar é melhor } catch (RuntimeException e) { operacao = false; getSession().getTransaction().rollback(); Logger.getLogger(getClass()).erro("unexpected exception, transaction was not commited",e); }

[/quote]

por que nao dar o printstacktrace
ele é mais pesado
e o Logger nao ficara mais lento ou coisa parecida.

tem como me informar

[quote=arthurminarini][quote=Lavieri][quote=arthurminarini]pessoal quando abro uma transação eu fasso assim (não esta dando problema) é só uma duvida

        getSession().clear();        
        try {            
            getSession().beginTransaction();
            ..
            ..
            ..
            ..
            getSession().getTransaction().commit();
            getSession().flush();
        } catch (HibernateException e) {//<<<<<<<coloquei duas classes para evitar que cause um erro que não seje de hibernate e não faça o rollback
            operacao = false;
            getSession().getTransaction().rollback();
            e.printStackTrace();
        } catch (Exception e) {
            operacao = false;
            getSession().getTransaction().rollback();            
        }

existe a classe Throwable que é o pai de todas, qual classe vcs recomendariam, lembrando que eu não quero tratar os erros eu quero apenas garantir que qualquer tipo de erro vai dar rollback [/quote]

Exception vc nunca terá, visto que as exceptions são avisadas quando vai ter…

se quiser garantir algo a mais que o hibernate não tenha previsto use RuntimeException… no lugar de exception

faça assim

getSession().clear(); try { getSession().beginTransaction(); .. .. .. .. getSession().getTransaction().commit(); getSession().flush(); } catch (HibernateException e) { operacao = false; getSession().getTransaction().rollback(); // e.printStackTrace(); <== não faça isso Logger.getLogger(getClass()).warn("this transaction was not commited",e); //<== logar é melhor } catch (RuntimeException e) { operacao = false; getSession().getTransaction().rollback(); Logger.getLogger(getClass()).erro("unexpected exception, transaction was not commited",e); }

[/quote]

por que nao dar o printstacktrace
ele é mais pesado
e o Logger nao ficara mais lento ou coisa parecida.

tem como me informar[/quote]

pq o logg vc vê e print screen n…