当前位置:网站首页>Sping.事务的传播特性
Sping.事务的传播特性
2022-07-31 00:50:00 【闲猫】
图示
列表
1、PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。
2、PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。
3、PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。
4、PROPAGATION_REQUIRES_NEW:创建新事务,无论当前存不存在事务,都创建新事务。
5、PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
6、PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
7、PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。
Nested和RequiresNew的区别
RequiresNew每次都创建新的独立的物理事务,而Nested只有一个物理事务;
Nested嵌套事务回滚或提交不会导致外部事务回滚或提交,但外部事务回滚将导致嵌套事务回滚,而 RequiresNew由于都是全新的事务,所以之间是无关联的;
Nested使用JDBC 3的保存点(save point)实现,即如果使用低版本驱动将导致不支持嵌套事务。
使用嵌套事务,必须确保具体事务管理器实现的nestedTransactionAllowed属性为true,否则不支持嵌套事务,如DataSourceTransactionManager默认支持,而HibernateTransactionManager默认不支持,需要设置来开启。
边栏推荐
猜你喜欢
typescript11-数据类型
ShardingSphere's public table combat (7)
Go 学习笔记(84)— Go 项目目录结构
WEB安全基础 - - -漏洞扫描器
BOM系列之history对象
ShardingSphere's unsharded table configuration combat (6)
typescript17 - function optional parameters
typescript16-void
MySQL database (basic)
Regular expression password policy and regular backtracking mechanism bypass
随机推荐
typescript16-void
MySQL高级-六索引优化
程序员工作三年攒多少钱合适?
typescript12-联合类型
MySQL——数据库的查,增,删
Rocky/GNU之Zabbix部署(2)
The client series of the DOM series
Responsive layout vs px/em/rem
Adding, deleting, modifying and checking the foundation of MySQL
MySql数据恢复方法个人总结
DOM系列之动画函数封装
API 网关 APISIX 在Google Cloud T2A 和 T2D 的性能测试
Solution: Parameter 0 of method ribbonServerList in com.alibaba.cloud.nacos.ribbon.NacosRibbonClientConfigu
Mysql systemized JOIN operation example analysis
Typescript18 - object type
typescript16-void
ES 中时间日期类型 “yyyy-MM-dd HHmmss” 的完全避坑指南
ROS2系列知识(3):环境配置
Shell programming of conditional statements
Problem record in the use of TypeScript