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条回答

    报告相同问题?

    悬赏问题

    • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
    • ¥15 lammps拉伸应力应变曲线分析
    • ¥15 C++ 头文件/宏冲突问题解决
    • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
    • ¥50 安卓adb backup备份子用户应用数据失败
    • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
    • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
    • ¥30 python代码,帮调试,帮帮忙吧
    • ¥15 #MATLAB仿真#车辆换道路径规划
    • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建