ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

【JavaP6大纲】MySQL篇:传播行为

2021-04-08 11:01:00  阅读:151  来源: 互联网

标签:JavaP6 事务 大纲 propagation 回滚 插入 外围 MySQL 方法


传播行为?

Spring支持7中事务传播行为
一个场景:假设外层方法里面包含二个新增用户和新增角色的方法,二个方法后面还会抛一个异常。
propagation_required(需要传播):当前没有事务则新建事务,有则加入当前事务。

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

propagation_supports(支持传播):支持当前事务,如果当前没有事务则以非事务方式执行

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

propagation_mandatory(强制传播):使用当前事务,如果没有则抛出异常

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

propagation_nested(嵌套传播):如果当前存在事务,则在嵌套事务内执行,如果当前没有事务,则执行

标签:JavaP6,事务,大纲,propagation,回滚,插入,外围,MySQL,方法
来源: https://blog.csdn.net/java_wxid/article/details/115509655

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有