关于spring 事务处理--循环执行

xiaojinchao 2014-08-17 12:38:34
声明edit方法事务配置如下:<bizc:tranactionAttribute method="opepj" propagation="REQUIRED" isolation="DEFAULT" timeout="-1" readOnly="false" />
//controller 中调用 opepj方法
testBizc.opepj();

//opepj方法定义
public void opepj(){
for (int i=0;i<6;i++){
try{
edit(i); //调用修改方法
}catch(Exception e){
// throw new RuntimeException("失败!");
}
}
}

/// public edit(int i){
/// 根据i 分别修改两个表的数据 表a、表b
}

此操作一共循环5次,我想这5次中有一次失败,继续往下执行,并且失败的那两个表a 表b操作要回滚。怎么实现?
1、以上代码中如果异常了 是向下执行,但是异常那次的表a 表b数据没有回滚。
2、如果 // throw new RuntimeException("失败!"); 注释放开,则5次都回滚了。
3、还有假如我吧 配置文件中的 method="opepj" 改为 edit方法,则不生效,没开启事务。
...全文
334 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaojinchao 2014-08-19
  • 打赏
  • 举报
回复
好吧,解决了,从容器中getBean方式调用methodB(),就好了。
xiaojinchao 2014-08-19
  • 打赏
  • 举报
回复
如果methodA受事务控制则成功执行,但把mathodA中的内容迁移到methodB,methodB受事务控制而methodA不受控,则会导致事务执行失败。 如: public void methodA() { CURD1(); CURD2(); CURD3(); } mathodA配置事务,事务生效。 public void methodA() { methodB(); } public void methodB() { CURD1(); CURD2(); CURD3(); } methodA未配置事务,methodB配置事务,则事务不生效。 怎么回事??
xiaojinchao 2014-08-17
  • 打赏
  • 举报
回复
是不是事务参数需要设置,edit方法设置为事务怎么不生效呢

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧