社区
六一的课程社区_NO_1
必知必会Spring框架
帖子详情
事务传播属性PROPAGATION_REQUIRES_NEW
知了灬
2023-01-13 02:25:28
课时名称
课时知识点
事务传播属性PROPAGATION_REQUIRES_NEW
事务传播属性PROPAGATION_REQUIRES_NEW
...全文
85
回复
打赏
收藏
事务传播属性PROPAGATION_REQUIRES_NEW
课时名称课时知识点事务传播属性PROPAGATION_REQUIRES_NEW事务传播属性PROPAGATION_REQUIRES_NEW
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Spring
事务
传播
特性解析
通过代码解析spring
传播
特性,包括 1、
Pro
pagat
ion
.
REQUIRE
D 方法被调用时自动开启
事务
,在
事务
范围内使用则使用同一个
事务
,否则开启新
事务
。 2、
Pro
pagat
ion
.
REQUIRE
S_
NEW
无论何时自身都会开启
事务
3、
Pro
pagat
ion
.SUPPORTS 自身不会开启
事务
,在
事务
范围内则使用相同
事务
,否则不使用
事务
4、
Pro
pagat
ion
.NOT_SUPPORTED 自身不会开启
事务
,在
事务
范围内使用挂起
事务
,运行完毕恢复
事务
5、
Pro
pagat
ion
.MANDATORY 自身不开启
事务
,必须在
事务
环境使用否则报错 6、
Pro
pagat
ion
.NEVER 自身不会开启
事务
,在
事务
范围使用抛出异常 7、
Pro
pagat
ion
.NESTED 如果一个活动的
事务
存在,则运行在一个嵌套的
事务
中. 如果没有活动
事务
, 则按Transact
ion
Definit
ion
.
PRO
PAGAT
ION
_
REQUIRE
D
属性
执行。需要JDBC3.0以上支持。
Spring
事务
传播
属性
以及
PRO
PAGAT
ION
_NESTED 和
PRO
PAGAT
ION
_
REQUIRE
S_
NEW
spring的六种
事务
传播
属性
PRO
PAGAT
ION
_
REQUIRE
D -- 支持当前
事务
,如果当前没有
事务
,就新建一个
事务
。这是最常见的选择。
PRO
PAGAT
ION
_SUPPORTS -- 支持当前
事务
,如果当前没有
事务
,就以非
事务
方式执行。
PRO
PAGAT
ION
_MANDATORY -- 支持当前
事务
,如果当前没有
事务
,就抛出异常。
PRO
PAGAT
ION
_
REQUIRE
S_NE
Spring
事务
传播
问题 —
PRO
PAGAT
ION
_
REQUIRE
S_
NEW
一、描述Spring遇到嵌套
事务
时,当被嵌套的
事务
被定义为“
PRO
PAGAT
ION
_
REQUIRE
S_
NEW
”时,内层Service的方法被调用时,外层方法的
事务
被挂起;内层
事务
相对于外层
事务
是完全独立的,有独立的隔离性等等。二、实验但实验时却遇到一个奇怪的问题:1、当ServiceA.a()方法调用ServiceB.b()方法时,内层
事务
提交和回滚,都不受外层
事务
提交或回滚的影响。2、当Serv...
@Transact
ion
al中
PRO
PAGAT
ION
_
REQUIRE
S_
NEW
和
PRO
PAGAT
ION
_NESTED区别
@Transact
ion
al1、Spring中对于
事务
传播
性的定义2、
PRO
PAGAT
ION
_
REQUIRE
S_
NEW
与
PRO
PAGAT
ION
_NESTED区别3、@Transact
ion
al主方法调用子方法
事务
的有无3.1 两个方法在同一个类中3.2 两个方法在不同类中 1、Spring中对于
事务
传播
性的定义
PRO
PAGAT
ION
_
REQUIRE
D:支持当前
事务
,如果当前没有
事务
,则新建一个
事务
PRO
PAGAT
ION
_SUPPORTS:支持当前
事务
,如果当前没有
事务
,则以非
事务
进行
PRO
PAG
spring
事务
PRO
PAGAT
ION
_
REQUIRE
S_
NEW
和
PRO
PAGAT
ION
_NESTED区别
PRO
PAGAT
ION
_
REQUIRE
S_
NEW
启动一个新的, 不依赖于环境的 "内部"
事务
. 这个
事务
将被完全 commited 或 rolled back 而不依赖于外部
事务
, 它拥有自己的隔离范围, 自己的锁, 等等. 当内部
事务
开始执行时, 外部
事务
将被挂起, 内务
事务
结束时, 外部
事务
将继续执行. 另一方面,
PRO
PAGAT
ION
_NESTED 开始一个 "嵌套的"
事务
, 它是已经存在
事务
的一个真正的子
事务
. 潜套
事务
开始执行时, 它将取得一个 savepoint. 如果这
六一的课程社区_NO_1
1
社区成员
139
社区内容
发帖
与我相关
我的任务
六一的课程社区_NO_1
心怀敬畏,砥砺前行
复制链接
扫一扫
分享
社区描述
心怀敬畏,砥砺前行
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章