使用@Transactional进行回滚时,当异常被try捕获处理后,Spring提供的事务将不会进行回滚
相关文章如下:
关于Spring事务回滚@Transactional使用记录
@transactional注解在什么情况下会失效,为什么。
[解决] spring service 调用当前类方法事务不生效
2022-05-22-0 15:45
start
这个是在网上看来的一个问题,觉得有点意思,记录一下
上面的的代码咋一看没有什么问题,不过仔细看就能看出一些端倪,
当a线程进入上诉流程中加锁解锁,此时数据库事务尚未提交,这是b线程进来了,这个时候是没有锁的,也就是说b线程读取数据库读取到的是原来的数据
然后提交事务。
在高并发的情况下
这样导致的问题是数据库的商品数量并不能如愿卖多少,减多少。而是会出现超卖的情况,即卖多件商品,只会减一个库存
end