记录一次关于嵌套事务传播机制的bug

记录一次关于嵌套事务传播机制的bug_第1张图片

1、具体问题

这段代码是A嵌套B,B嵌套C,遇到的bug是C代码发生异常进行事务标记(因为使用的传播行为是默认的REQUIRED所以要等A事务进行rollback,C加入了A事务只能暂时进行标记),但是由于B代码进行了异常捕获返回给了A信息并没有抛出异常,导致A代码并没有进行rollback。

2、解决办法

在A代码退款失败处直接抛出异常而且必须是RuntimeExcetion,普通Exception不会进行回滚

你可能感兴趣的:(bug,数据库)