【传播行为】

简介: 【传播行为】

本文内容:


Spring支持7中事务传播行为

一个场景:假设外层方法里面包含二个新增用户和新增角色的方法,二个方法后面还会抛一个异常。

propagation_required(需要传播)

当前没有事务则新建事务,有则加入当前事务。


外围方法未开启事务,插入用户表和用户角色表的方法在自己的事务中独立运行,外围方法异常不影响内部插入,所以两条记录都新增成功。 外围方法开启事务,内部方法加入外围方法事务,外围方法回滚,内部方法也要回滚,所以两个记录都插入失败。


propagation_supports(支持传播)

支持当前事务,如果当前没有事务则以非事务方式执行


外围方法未开启事务,插入用户表和用户角色表的方法以非事务的方式独立运行,外围方法异常不影响内部插入,所以两条记录都新增成功。 外围方法开启事务,内部方法加入外围方法事务,外围方法回滚,内部方法也要回滚,所以两个记录都插入失败。


propagation_mandatory(强制传播)

使用当前事务,如果没有则抛出异常


外围方法开启事务,内部方法加入外围方法事务,外围方法回滚,内部方法也要回滚,所以两个记录都插入失败。 外围方法没有开启事务,两张表数据都为空,在调用用户新增方法时候已经报错了,所以两个表都没有新增数据。


propagation_nested(嵌套传播)

如果当前存在事务,则在嵌套事务内执行,如果当前没有事务,则执行需要传播行为。


外围方法开启事务抛出异常,父事务最后回滚,二个方法也进行回滚的,两个表都没有新增数据。 外层方法未开启事务,插入用户表和用户角色表的方法在自己的事务中独立运行,外围方法异常不影响内部插入,所以两条记录都新增成功。

propagation_never(绝不传播)

以非事务的方式执行,如果当前有事务则抛出异常。


外围方法开启事务则抛出异常,两个表都没有新增数据 外层方法未开启事务会以非事务的方式运行,两个表新增成功;


propagation_requires_new(传播需要新的)

新建事务,如果当前有事务则把当前事务挂起,创建新的事务。


无论当前存不存在事务,都创建新事务,所以两个数据新增成功。


propagation_not_supported(不支持传播)

以非事务的方式执行,如果当前有事务则把当前事务挂起。


外围方法未开启事务,插入用户表和用户角色表的方法在自己的事务中独立运行,外围方法异常不影响内部插入,所以两条记录都新增成功。 外围方法开启事务,两个数据新增成功。


总结


以上就是今天要讲的内容,还希望各位读者大大能够在评论区积极参与讨论,给文章提出一些宝贵的意见或者建议📝,合理的内容,我会采纳更新博文,重新分享给大家。


相关文章
爱格停刊事件舆情传播分析
爱格停刊事件舆情传播分析
|
8月前
事件 传播
事件 传播
|
11月前
|
XML Java 数据库
详解事务的7种传播行为
什么是Spring事务的传播行为?事务传播行为的七种类型有哪些?将异常try-catch捕获,事务是否还会回滚?
201 0
详解事务的7种传播行为
|
Java 测试技术 数据安全/隐私保护
Spring事务的传播行为分析
最近项目有涉及到Spring事务,所以工作之余,想认真了解学习下Spring事务,查阅了若干资料,做了一个demo
92 0
|
监控 开发者
传播过程模型 | 学习笔记
快速学习传播过程模型。
310 0
传播过程模型 | 学习笔记
|
存储 Java 关系型数据库
Spring事务传播机制
通过举例Spring 父方法、子方法调用以及事务传播机制验证
Spring事务传播机制
|
存储 弹性计算 负载均衡
案例分享——华媒传播|学习笔记
快速学习 案例分享——华媒传播
|
开发者 Python
异常传播|学习笔记
快速学习 异常传播
|
Java Spring 容器
Spring事务的传播行为
Spring中的7个事务传播行为: 事务行为 说明 PROPAGATION_REQUIRED 支持当前事务,假设当前没有事务。就新建一个事务 PROPAGATION_SUPPORTS 支持当前事务,假设当前没有事务,就以非事务方式运行 PROPAGATION_MANDATORY 支持当前事务,假设当前没有事务,就抛出异常 PROPAGATION_REQUIRES_NEW 新建事务,假设当前存在事务。把当前事务挂起 PROPAGATION_NOT_SUPPORTED 以非事务方式运行操作。假设当前存在事务,就把当前事务挂起
Spring事务的传播行为
|
Java Spring
Spring事务传播行为
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82862210 ...
846 0