在项目中遇到了事务问题,当时对事务了解很少,整起来费了不少时间。先把项目中遇到的问题描述如下:
大方法A,去调用B,C,D,这里C不需要事务,我们就加了个try-catch,保证事务失败也会往下走,然后B失败了,就会回滚B,C失败了就回滚C。由于我们对service中的方法都配置了事务,导致D失败了,B也回滚了。
解决方案就是:配置A为非事务的,去调用B,C,D。这个时候调用B的时候就会开启一个事务,调用完事务就会提交,D也类似,他们的事务不会相互干扰,调用完就提交。这个问题就解决了
在项目中遇到了事务问题,当时对事务了解很少,整起来费了不少时间。先把项目中遇到的问题描述如下:
大方法A,去调用B,C,D,这里C不需要事务,我们就加了个try-catch,保证事务失败也会往下走,然后B失败了,就会回滚B,C失败了就回滚C。由于我们对service中的方法都配置了事务,导致D失败了,B也回滚了。
解决方案就是:配置A为非事务的,去调用B,C,D。这个时候调用B的时候就会开启一个事务,调用完事务就会提交,D也类似,他们的事务不会相互干扰,调用完就提交。这个问题就解决了