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.
[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.