在Hibernate中,事务管理是非常标准的,只要记住Hibernate抛出的任何异常都是FATAL ,就必须回滚事务并立即关闭当前会话。
这是一个Hibernate交易模板:
Session session = null;
Transaction tx = null;
try{
session = HibernateUtil.getSessionFactory().openSession();
tx = session.beginTransaction();
tx.setTimeout(5);
//doSomething(session);
tx.commit();
}catch(RuntimeException e){
try{
tx.rollback();
}catch(RuntimeException rbe){
log.error("Couldn’t roll back transaction", rbe);
}
throw e;
}finally{
if(session!=null){
session.close();
}
}
翻译自: https://mkyong.com/hibernate/hibernate-transaction-handle-example/