2 hjh zljs hjh_zljs 于 2014.03.17 22:15 提问

spring管理hibernate,请问如何保证所有操作是一个事务内完成的?具体如下:

transactionTemplate.execute(new TransactionCallbackWithoutResult(){
protected void doInTransactionWithoutResult(TransactionStatus transactionStatus){
Session session = null;
Transaction tx = null;
try{
session = getSessionFactory().openSession();
tx = session.beginTransaction();
方法1();
方法2();

方法3();

update(object);
tx.commit();
}catch(Exception e){
e.printStackTrace();
if(tx != null){
tx.rollback();
}
}finally{
if(session != null){
if(session.isOpen()){
session.close();
}
}
}
}
spring管理hibernate的,请问为什么方法2或方法3出错了,方法1或(方法1+方法2)的操作怎么才不会提交到数据库(即方法1、2、3全部没报错才一次性提交所有操作)?

Csdn user default icon
上传中...
上传图片
插入图片