处理嵌套for循环中的事务处理

方法一:手动进行回滚(不推荐使用)

步骤:

  • 1、自定义异常(继承exception类,添加有参和无参的构造方法)
    处理嵌套for循环中的事务处理_第1张图片

  • 2、将嵌套for循环,写到一个自定义的方法,产生自定义的异常并抛出

处理嵌套for循环中的事务处理_第2张图片

  • 3、调用嵌套for循环的方法,捕获异常并手动进行回滚操作
    处理嵌套for循环中的事务处理_第3张图片

    注意:
    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动进行回滚的语句

方法二、自动回滚(适用于没有返回值的service)

将方法一中的第三部改为(在controller中可能需要捕获异常,具体看实际情况)

  • 步骤一:自定义异常

处理嵌套for循环中的事务处理_第4张图片

  • 步骤二:嵌套for循环抛出异常

    方法前加上这些代码(事务处理注解):
    在这里插入图片描述主要的事务代码:
    处理嵌套for循环中的事务处理_第5张图片

  • 步骤三:controller中捕获异常进行处理

处理嵌套for循环中的事务处理_第6张图片

你可能感兴趣的:(开发笔记)