Spring事务传播机制

记忆口诀。读口诀时,右脑一定要想对应的画面。

需要 支持 强制的 需要新的 不支持的 决不 嵌套
紫色的 光头强 猩猩 紫色的布 决不 钱钱

!看紫色的光头强,送给猩猩一匹紫色的布,并且决不收它的钱钱

 

当前方法,当前环境是“事务环境”,当前环境是“非事务环境”

 

required:需要,默认

我需要事务。如果有就加入;没有就新建。

supports:支持

我支持当前环境。无论当前环境是“事务环境”,还是“非事务环境”,我都支持。

mandatory:强制的

我强制的要求当前环境是事务环境,否则抛异常。

requires_new需要新的

我要自己的新建的事务。如果已有一个事务,就把它挂起。

not_supported不支持—— 以非事务方式执行;如果当前事务存在,就挂起当前事务。

我不支持事务。如果当前环境是事务环境,就把它挂起。

never决不

我决不允许当前环境是事务环境,否则抛异常。

nested:嵌套,嵌套事务、子事务

我要自己的新建的(嵌套)事务。如果已有一个事务,就嵌套入它。

外部事务回滚,嵌套也回滚;但是嵌套事务回滚不会影响外部事务。

 

 

 

当前是“事务环境”

当前是“非事务环境”

required

需要

加入

新建

supports

支持

加入

以非事务方式执行

mandatory

强制的

加入

抛异常

requires_new

需要新的

新建,挂起

新建

nested

嵌套

新建,嵌套进

新建

not_supported

不支持的

挂起

以非事务方式执行

never

决不

抛异常

以非事务方式执行

nested

嵌套

新建,嵌套进

新建

posted @ 2021-08-11 00:56  己为  阅读(54)  评论(0编辑  收藏  举报