Spirng事务的传播学习

事务传播:一个事务方法在被调用时,如何与现有事务的交互行为。当方法被事务性地调用时,他应该加入当前事务还是开启一个新事物。

常见的事务传播机制(7种):

Propagation枚举类,定义了传播机制和值:

PROPAGATION_REQUIRED:这是默认的传播方式。如果当前有事务,调用方法会加入当前事务;如果没有事务,会新建一个事务。适合大多数数据库操作,在一个事务的场景

**PROPAGATION_REQUIRES_NEW:**无论当前是否存在事务中,都会开启一个新事务。原来的事务会被挂起,直到新的事务执行完成。适合日志记录,外部API调用等不依赖主事务的操作

PROPAGATION_SUPPORTS:如果当前有事务,则加入该事务;如果没有事务,则以非事务的方式执行。适合可选事务的场景,例如只读的服务方法,是否在事务中执行无关紧要

PROPAGATION_NOT_SUPPORT:表示当前方法不需要事务,且如果存在事务,则将事务挂起。适合长时间操作或不需要事务管理的操作。

PROPAGATION_MANDATORY:要求必须在现有事务中执行,如果当前没有事务,则抛出异常。

适合必须在事务上下文中运行的方法

PROPAGATION_NEVER:禁止在事务内执行,如果存在事务就抛出异常。适合明确不希望某些操作在事务中时使用

PROPAGATION_NESTED:开启嵌套事务,如果外层事务回滚,嵌套事务也会回滚;但如果嵌套事务回滚,外层事务可以继续。适合部分操作需要独立回滚的复杂业务逻辑场景。

相关推荐
m0_587383006 分钟前
工业场景设备维修维护实战技巧 全流程标准化落地与常见问题排查指南
java·spring·小程序·架构·需求分析
郑州光合科技余经理33 分钟前
本地生活平台搭建:跨业态用户标识怎么贯通
java·开发语言·前端·后端·uni-app·php·ai编程
JWASX37 分钟前
【agent 开发】agent 开发学习 - LangChain(3)
学习·langchain
木头科技39 分钟前
【AI 工程化第八篇】Spring AI 多模型路由实战:DeepSeek、通义、Kimi、OpenAI 如何统一接入和自动切换
java·人工智能·spring
深盾科技_Virbox42 分钟前
云端与本地并行交付,软件许可管理如何实现统一运营?
java·大数据·开发语言·安全
thefool11226643 分钟前
多线程 3
java
CoderYanger1 小时前
A.每日一题:856. 括号的分数
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
dadaobusi1 小时前
一个有趣的物理假设
学习
liangbo71 小时前
01-Java 集合框架全景:从 Collection 到 Map 一张关系网理清
java
xuxigifxfh1 小时前
HJ15 求int型正整数在内存中存储时1的个数
java·开发语言·华为机考