Spring 事务失效 8 大场景!一篇彻底搞懂 @Transactional 不生效
在开发中Transactional可以说是最常用、也最容易踩坑的注解。明明加了注解结果异常不回滚、事务不生效数据错了还很难排查。今天这篇把Spring 事务失效 8 大高频场景一次性讲透每个场景都给你错误代码 正确代码线上真实踩坑总结建议收藏一、事务不生效先记住一句话Spring 事务是基于 AOP 代理实现的只有被 Spring 代理对象调用事务才会生效。凡是绕过代理的写法事务 100% 失效。二、8 大事务失效场景 解决方案1. 方法非 public最容易忽略错误java运行Service public class UserService { Transactional private void addUser() { // private → 事务失效 // 数据库操作 } }原因Spring 事务只对public 方法生效。正确java运行Transactional public void addUser() { }2. 内部调用本类方法最经典失效错误java运行Service public class OrderService { public void createOrder() { // 内部直接调用 → 不走代理 → 事务失效 doSave(); } Transactional public void doSave() { } }原因内部this.方法()不是代理对象调用。正确方案 1注入自身java运行Autowired private OrderService orderService; public void createOrder() { orderService.doSave(); }正确方案 2启用 AopContextjava运行((OrderService)AopContext.currentProxy()).doSave();3. 异常被 try-catch 吃掉了错误java运行Transactional public void update() { try { // 数据库操作 } catch (Exception e) { // 异常被吞 → 不回滚 } }正确要么不 catch要么 catch 后抛出java运行catch (Exception e) { throw new RuntimeException(e); }4. 抛出的异常不是 RuntimeException错误java运行Transactional public void test() throws Exception { throw new Exception(); // 默认不回滚 }原因Spring 默认只对RuntimeException / Error回滚。正确java运行Transactional(rollbackFor Exception.class)5. 类没有被 Spring 管理错误java运行// 没加 Service → 不受 Spring 管理 public class UserService { Transactional public void add(){} }正确java运行Service public class UserService6. 多线程调用极容易踩坑错误java运行Transactional public void test() { new Thread(() - { // 子线程里的数据库操作 // 不在同一个事务 → 不回滚 }).start(); }原因事务和线程绑定子线程不受主线程事务管理。解决子线程方法单独加 Transactional。7. 数据库引擎不支持事务错误MySQL 表引擎是MyISAM解决改成InnoDB。8. 传播机制配置错误错误java运行Transactional(propagation Propagation.NOT_SUPPORTED)事务不生效。常用正确java运行Transactional(propagation Propagation.REQUIRED)三、万能排查步骤记这 5 条方法是不是public是不是内部 this 调用异常有没有被 catch 吃掉是不是RuntimeException类有没有Service / Component按这个顺序查99% 的事务失效都能找到原因。四、总结超级好记Spring 事务失效只有一个核心没走代理、异常被吞、权限不对、配置错误。非 public → 失效内部调用 → 失效异常被吃 → 不回滚非运行时异常 → 不回滚多线程 / 新调用 → 独立事务你在项目中遇到过哪些奇葩事务失效评论区留言我来帮你定位

相关新闻

网安初学日记|永恒之蓝(MS17-010)漏洞攻击实操记录

网安初学日记|永恒之蓝(MS17-010)漏洞攻击实操记录

前言作为网安新手,今天正式上手实操了永恒之蓝(MS17-010)漏洞的完整流程——从nmap漏洞扫描,到利用漏洞攻击并控制目标虚拟机,每一步都充满了新鲜感,也深刻体会到网安学习的严谨性。特此记录下来&#xff0…

2026/7/4 1:08:55 阅读更多 →
AI数字人制作成本高?2026年十大工具如何破解选型难题

AI数字人制作成本高?2026年十大工具如何破解选型难题

在数字内容快速发展的当下,许多企业和个人在数字人制作的道路上,都面临着成本与选择的双重挑战。如何找到合适的工具,降低制作成本,成为众多关注数字人发展的用户心中的疑问。从市场整体来看,2026年数字人行业的技术门…

2026/7/3 21:41:11 阅读更多 →
Flutter 组件 ipaddr 适配鸿蒙 HarmonyOS 实战:高性能 IP 地址解析,构建子网掩码治理与网络边界安全架构

Flutter 组件 ipaddr 适配鸿蒙 HarmonyOS 实战:高性能 IP 地址解析,构建子网掩码治理与网络边界安全架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 组件 ipaddr 适配鸿蒙 HarmonyOS 实战:高性能 IP 地址解析,构建子网掩码治理与网络边界安全架构 前言 在鸿蒙(OpenHarmony)生态迈向…

2026/7/3 11:57:12 阅读更多 →

最新新闻

AMD Ryzen处理器深度调试完全指南:5分钟掌握SMU Debug Tool核心功能

AMD Ryzen处理器深度调试完全指南:5分钟掌握SMU Debug Tool核心功能

AMD Ryzen处理器深度调试完全指南:5分钟掌握SMU Debug Tool核心功能 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址…

2026/7/4 1:07:10 阅读更多 →
DeepSeek API实战与知识蒸馏技术解析:从争议到金融问答机器人构建

DeepSeek API实战与知识蒸馏技术解析:从争议到金融问答机器人构建

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 如果你最近关注 AI 领域,可能会注意到一个有趣的现象:一边是 DeepSeek 的 API 因其兼容性和性价比&#xff…

2026/7/4 1:07:10 阅读更多 →
Agentic AI:从概念到实战,企业级智能体落地五大硬核思考

Agentic AI:从概念到实战,企业级智能体落地五大硬核思考

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 最近在和企业技术负责人交流时,发现一个普遍现象:大家已经不再满足于让ChatGPT写写周报、生成点代码片段&am…

2026/7/4 1:05:10 阅读更多 →
AI智能体构建指南:从核心架构到工程实践

AI智能体构建指南:从核心架构到工程实践

1. 从零构建AI智能体的完整指南:基于Google Agent白皮书的深度解析作为一名长期深耕AI应用开发的技术从业者,我最近花了整整5小时研读Google最新发布的《初创公司技术指南:AI Agents》白皮书。这份60页的技术文档虽然被官方宣传为"实践导…

2026/7/4 1:03:10 阅读更多 →
MACD背离交易策略:原理、参数优化与实战应用

MACD背离交易策略:原理、参数优化与实战应用

1. MACD背离的本质与市场逻辑MACD(Moving Average Convergence Divergence)作为技术分析领域的经典指标,其背离现象本质上是价格运动与动能指标之间的非线性关系体现。当价格创出新高而MACD柱状图未能同步创新高(顶背离&#xff0…

2026/7/4 1:03:10 阅读更多 →
Dify实战:2小时构建企业级AI工作流,跨越Prompt到应用的工程鸿沟

Dify实战:2小时构建企业级AI工作流,跨越Prompt到应用的工程鸿沟

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 你是不是也遇到过这样的场景:想用大模型做个智能客服,结果发现写个 Prompt 要反复调试几十遍;想…

2026/7/4 1:03:10 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻