Spring 事务 7 种传播行为
一、基础概念事务传播行为多个事务方法互相调用时事务如何传递、创建、复用的规则当方法 A 调用方法 BA、B 都带有Transactional传播行为决定 B 是沿用 A 的事务、新建事务、还是不使用事务。核心入口TransactionDefinition接口定义 7 个常量Transactional(propagation Propagation.REQUIRED)指定。二、7 种传播行为完整详解执行逻辑 场景 区别1. REQUIRED默认值最常用规则如果当前存在事务外层有事务复用外层事务内外是同一个事务如果当前无事务自己新建一个独立事务。执行案例外层无事务 → 新建事务执行 B外层 A 有事务 → B 加入 A 事务A/B 任意一处异常整体一起回滚。适用场景90% 普通业务增删改订单、用户、库存所有操作必须同生共死。2. REQUIRES_NEW规则永远创建全新独立事务不管外层是否存在事务外层事务会被挂起等内层新事务执行完成后再恢复外层事务。 内外两个事务完全隔离互不影响。执行案例A (REQUIRED) 调用 B (REQUIRES_NEW)A 开启事务执行到 B 时挂起 A 事务B 新建独立事务B 正常提交 / 异常回滚都不会影响 AB 执行完毕恢复 A 事务继续执行后续 A 抛异常回滚不会回滚 B 已经提交的数据。适用场景日志记录、操作流水、异步记录。 例下单失败回滚订单但需要保存失败日志日志不能跟着订单一起回滚日志方法使用REQUIRES_NEW。3. SUPPORTS规则当前有事务沿用外层事务当前无事务直接以非事务方式执行无事务。适用场景查询类接口select。查询不需要事务若外层有事务查询嵌套在更新业务里则加入外层事务保证数据一致性。4. NOT_SUPPORTED规则强制以非事务运行如果外层存在事务直接挂起外层事务内层方法无事务执行。适用场景大数据导出、批量查询、读取海量数据不需要事务同时不占用外层事务连接。例事务中导出百万条数据避免长时间占用数据库事务连接。5. MANDATORY强制规则必须存在外层事务否则直接抛出异常不能单独运行。适用场景子业务必须依赖外层主事务禁止单独调用。例扣减库存逻辑必须嵌套在创建订单主事务中禁止外部单独调用扣库存方法。6. NEVER规则绝对不允许存在外层事务如果外层存在事务直接抛异常无外层事务则正常无事务执行。适用场景明确禁止被事务包裹的方法。例批量删除历史归档数据逻辑独立不允许嵌套在其他事务中导致长事务锁表。7. NESTED嵌套事务规则外层无事务新建独立事务等价于 REQUIRED外层存在事务创建嵌套子事务保存点 SavePoint不是独立新事务。核心特性和 REQUIRES_NEW 最大区别子事务回滚只会回滚到自身保存点不会导致外层事务回滚外层事务回滚会连带所有嵌套子事务一起全部回滚共用同一个数据库连接没有挂起事务操作。适用场景主业务流程下存在多个可独立回滚的子步骤。例创建订单主流程包含「生成订单、发放优惠券、扣积分」三个子操作优惠券发放失败只回滚优惠券不回滚订单但如果订单创建失败优惠券、积分全部回滚。三、REQUIRES_NEW VS NESTED 高频对比面试必问表格对比维度REQUIRES_NEWNESTED事务关系两个完全独立事务互不影响外层主事务 子保存点从属关系数据库连接新建连接外层事务挂起共用同一个数据库连接内层回滚内层回滚外层事务不受任何影响内层回滚仅回滚自身外层可继续提交外层回滚外层回滚不影响已提交的内层事务外层回滚所有嵌套子事务全部回滚底层原理独立事务独立 commit/rollback基于 JDBC SavePoint 保存点实现四、7 种传播行为快速速查表表格传播行为外层有事务外层无事务核心特点REQUIRED默认加入外层事务新建事务同生共死通用REQUIRES_NEW挂起外层新建独立事务新建事务内外完全隔离SUPPORTS加入外层事务无事务执行适合查询NOT_SUPPORTED挂起外层无事务执行无事务执行大数据查询导出MANDATORY加入外层事务直接抛异常必须嵌套事务调用NEVER直接抛异常无事务执行禁止嵌套在事务中NESTED创建保存点子事务新建事务子事务可单独回滚外层回滚连带子事务五、企业开发使用规范增删改业务默认REQUIRED记录操作日志、异常流水REQUIRES_NEW单纯查询接口SUPPORTS大数据批量读取 / 导出NOT_SUPPORTED底层子操作不允许单独调用MANDATORY归档清理、独立批量操作NEVER主流程下多步骤可局部回滚NESTED六、高频面试题补充NESTED 依赖数据库支持吗需要底层 JDBC 驱动支持 SavePoint 保存点MySQL、Oracle 均支持。为什么日志要用 REQUIRES_NEW不用 NESTED业务操作失败回滚时日志需要永久留存NESTED 外层回滚会连带日志一起回滚无法保存日志因此日志场景必须用 REQUIRES_NEW。MANDATORY 和 NEVER 的区别MANDATORY必须有外层事务无事务报错 NEVER绝对不能有外层事务有事务报错。两者约束完全相反。

相关新闻

快速本地部署SuperGemma4-26B无审查AI模型:5分钟完成高性能推理

快速本地部署SuperGemma4-26B无审查AI模型:5分钟完成高性能推理

快速本地部署SuperGemma4-26B无审查AI模型:5分钟完成高性能推理 【免费下载链接】supergemma4-26b-uncensored-gguf-v2 项目地址: https://ai.gitcode.com/hf_mirrors/Jiunsong/supergemma4-26b-uncensored-gguf-v2 想要在本地快速部署一个强大且无审查的AI…

2026/7/28 2:58:43 阅读更多 →
DAB学习心得(G474_RX.c)

DAB学习心得(G474_RX.c)

DAB学习心得(G474_RX.c)

2026/7/28 2:58:43 阅读更多 →
LinkSwift:九大网盘直链下载助手完全指南,轻松突破下载限制

LinkSwift:九大网盘直链下载助手完全指南,轻松突破下载限制

LinkSwift:九大网盘直链下载助手完全指南,轻松突破下载限制 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国…

2026/7/28 2:57:43 阅读更多 →

最新新闻

3个必学的Awesome Claude Skills:让你的AI助手变身创意设计大师

3个必学的Awesome Claude Skills:让你的AI助手变身创意设计大师

3个必学的Awesome Claude Skills:让你的AI助手变身创意设计大师 【免费下载链接】awesome-claude-skills A curated list of awesome Claude Skills, resources, and tools for customizing Claude AI workflows 项目地址: https://gitcode.com/GitHub_Trending/a…

2026/7/28 3:10:50 阅读更多 →
技术提问的艺术:从无效呐喊到高效协作的黄金法则

技术提问的艺术:从无效呐喊到高效协作的黄金法则

1. 为什么“会提问”比“会解答”更重要在技术社区、开源项目或者任何需要协作解决问题的场合里,我们每天都能看到海量的提问。但一个扎心的现实是:很多问题根本得不到有效回答,或者回答者需要像侦探一样,花费大量时间去“猜”提问…

2026/7/28 3:10:50 阅读更多 →
Cylinder3D:如何在3分钟内快速部署领先的LiDAR语义分割开源项目

Cylinder3D:如何在3分钟内快速部署领先的LiDAR语义分割开源项目

Cylinder3D:如何在3分钟内快速部署领先的LiDAR语义分割开源项目 【免费下载链接】Cylinder3D Rank 1st in the leaderboard of SemanticKITTI semantic segmentation (both single-scan and multi-scan) (Nov. 2020) (CVPR2021 Oral) 项目地址: https://gitcode.c…

2026/7/28 3:10:50 阅读更多 →
基于ESP32的四足机器人DIY:从硬件选型到步态算法全解析

基于ESP32的四足机器人DIY:从硬件选型到步态算法全解析

1. 项目概述:从零打造一个会走路的“电子宠物”几年前,当我第一次看到波士顿动力的机器狗视频时,除了惊叹,心里也埋下了一颗种子:这么酷的东西,我能不能自己做一个简化版的?当然,动辄…

2026/7/28 3:10:50 阅读更多 →
技术详解|物联网智能锁如何解决民宿/网约房身份核验与远程授权痛点

技术详解|物联网智能锁如何解决民宿/网约房身份核验与远程授权痛点

一、行业背景与现存痛点 近几年分散式民宿、网约房业态快速普及,成为文旅住宿行业的重要补充。但相较于标准化酒店,该类业态房源分散、租客流动性极强、无固定前台值守,长期存在监管落地难、身份核验松、权限管控乱、运营成本高四大核心难题&…

2026/7/28 3:10:49 阅读更多 →
三步开启未来预测革命:用MiroFish群体智能引擎看见每一个“如果“

三步开启未来预测革命:用MiroFish群体智能引擎看见每一个“如果“

三步开启未来预测革命:用MiroFish群体智能引擎看见每一个"如果" 【免费下载链接】MiroFish A Simple and Universal Swarm Intelligence Engine, Predicting Anything. 简洁通用的群体智能引擎,预测万物 项目地址: https://gitcode.com/GitH…

2026/7/28 3:09:49 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻