• spring设置手动回滚不生效(setRollbackOnly),数据
  • java
    2.00元

spring设置手动回滚不生效(setRollbackOnly),数据还是入库了,代码如下。

@Transactional
 public void executeDataMigration() {
   try {
     for (int i = 1; i < 10; i++) {
       insertA(i);
     }

   } catch (Exception e) {
     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
   }
 }

 public void insertA(int id) {
   String sql = "insert tableA(id, code, name) values (?, ?, ?)";
   dao.executeBySql(sql, new Object[] {id, "123", "小花"});
   String a = null;
   a.toString();
 }

上面代码,捕获异常后加了手动回滚,结果数据还是入库了,请问应该怎么写,才能让数据insertA发生错误后回滚,但是又不能影响for循环的下一次执行。

比如我要循环10次,有2次失败,8次成功,那么数据库的最终数据要为8条,请问怎么能做到呢。


  • 旺盛的绿萝    2020-04-22 10:40:43
  • 阅读 1019    收藏 0    回答 1
  • 邀请
  • 收藏
  • 分享
发送
登录 后发表评论
  • 51testing软件测试圈微信