gegesgeg 2014-03-17 14:15
浏览 945

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全部没报错才一次性提交所有操作)?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!
    • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?