zoukankan      html  css  js  c++  java
  • spring 事务控制 设置手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

      当我们需要在事务控制的service层类中使用try catch 去捕获异常后,就会使事务控制失效,因为该类的异常并没有抛出,就不是触发事务管理机制。怎样才能即使用try catch去捕获异常,而又让出现异常后spring回滚呢,这里就要用到

    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

    完美解决问题。并且能够使该方法执行完。

    =---------------------------

    String isShipments = tOrderMapperExt.getGoodsNotdeliveryById(request.getGoodsId());
    if(isShipments!= null){ //该城市是否发货
    List<String> stringList = ResolverUtil.StringToList(isShipments);
    if(stringList.contains(request.getCityId())){
    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
    throw new SystemRuntimeException("商品城市不发货请选择其他地址行下", HttpStatus.OK);
    }
    }
  • 相关阅读:
    设计模式—适配器模式
    设计模式—策略模式 状态模式
    设计模式——装饰模式和代理模式
    C++常考算法
    ModelState.AddModelError使用
    Json
    ref与out
    三层与mvc
    新的方法(Set<T>)实现mvc的crud
    【程序45】
  • 原文地址:https://www.cnblogs.com/yangsanluo/p/14707929.html
Copyright © 2011-2022 走看看