spring事务详解,血详细。。。

转载:http://www.linkedkeeper.com/1045.html
几个点:
怎么判断是否已经在事务中:
在这里插入图片描述
判断当前线程是否存在事务就是判断记录的数据库连接是否为空并且transactionActive状态为true。还记得以前写过,事务下的逻辑取得connection后是保存在threadlocal中的。
在这里插入图片描述
如果是REQUEST_NEW这种的,就挂起当前事务并新建一个事务,里面就是将当前connectionHolder置空并重新获取一个connection。再里面的回滚和提交就是底层数据库API的回滚和提交了。

嵌套事务保存点在mysql中的概念:https://www.cnblogs.com/coolhtm/p/3942287.html
其实就是ROLLBACK和ROLLBACK_TO_SAVEPOINT

猜你喜欢

转载自blog.csdn.net/weixin_39312465/article/details/89949379