@Transactional 标了却没开事务?先看这次调用有没有经过代理
我见过不少项目把这个问题归因成「注解没扫到」。但如果注解明明在、Bean 也正常先别急着查配置。多数时候是调用没经过 Spring 的事务代理。同一个类里这么调saveOrder不会被拦截Service public class OrderService { public void createOrder() { saveOrder(); } Transactional public void saveOrder() { orderRepository.save(new Order()); } }请求进来时外层确实会先经过OrderService的代理。可createOrder()运行起来以后调用saveOrder()用的是当前对象的this。它没有再绕回代理所以事务拦截器根本看不见这次调用。这也是为什么调试时常会觉得很别扭Transactional就贴在方法上断点也进来了实际却没有事务。Spring Framework 的事务文档把这个行为说得很直白默认代理模式只拦截从代理进入的外部调用同一对象内部的自调用不会触发事务。业务入口和事务方法拆开调用路径就清楚了我更常用的写法是把编排和落库拆成两个 BeanService RequiredArgsConstructor public class OrderFacade { private final OrderService orderService; public void createOrder() { orderService.saveOrder(); } } Service public class OrderService { Transactional public void saveOrder() { orderRepository.save(new Order()); inventoryRepository.decrease(); } }这里OrderFacade注入的是OrderService的代理调用saveOrder()时才会进入事务边界。如果事务本来就该覆盖整个createOrder()那就直接把注解放在入口方法上内部再调私有的辅助方法。别为了「让注解生效」专门搞自注入调用链会越来越难看。事务开了也不等于所有异常都会回滚还有一个面试里很容易接着问的点Transactional public void saveOrder() throws IOException { orderRepository.save(new Order()); throw new IOException(network error); }默认规则下RuntimeException和Error会触发回滚受检异常不会。上面这段如果没有额外配置写入仍可能提交。需要把受检异常也纳入回滚时明确写出来Transactional(rollbackFor IOException.class) public void saveOrder() throws IOException { orderRepository.save(new Order()); throw new IOException(network error); }排查事务问题时我一般先看日志里是不是出现了事务边界再看调用是不是绕过了代理最后才检查传播行为和回滚规则。

相关新闻

Claude Code + DeepSeek:AI 编程助手配置

Claude Code + DeepSeek:AI 编程助手配置

本文摘要:本文是《Windows 下 AI 开发工具实战指南》系列第 3 篇,手把手教你从零安装 Claude Code,并配置 DeepSeek 作为模型后端,以极低成本在终端中获得强大的 AI 编程助手。文章覆盖了从安装配置、项目初始化(/init…

2026/7/23 2:52:58阅读更多 →
想问一下大佬们,入门了k230然后准备去学yolo图像检测,目前卡在第一步下载WSL

想问一下大佬们,入门了k230然后准备去学yolo图像检测,目前卡在第一步下载WSL

大家下载都是这么慢的吗?我下了快两个钟,还有百分之四十没下好。在网上找的教程powershell给指令下载的😭求助各位佬o(╥﹏╥)o

2026/7/23 2:52:58阅读更多 →
MySQL 运维必备:mysqladmin 命令详解 —— 服务器管理一站式指南

MySQL 运维必备:mysqladmin 命令详解 —— 服务器管理一站式指南

一、命令简介 mysqladmin 是 MySQL 数据库服务器的官方命令行管理客户端工具。它允许数据库管理员在不登录 MySQL 交互式命令行 (mysql) 的情况下,直接执行一系列服务器管理、状态检查和维护操作。其主要用途包括检查服务器状态、创建 / 删除数据库、管理用户密码、…

2026/7/23 2:52:58阅读更多 →
Tiva™ C系列MCU I2C主模式寄存器配置与调试实战指南

Tiva™ C系列MCU I2C主模式寄存器配置与调试实战指南

1. I2C总线协议与寄存器编程的核心价值在嵌入式开发领域,I2C总线就像设备间沟通的“普通话”,它用两根线(SDA数据线和SCL时钟线)串联起传感器、存储器、显示屏等众多外设。这套协议的精妙之处在于其主从架构和时钟同步机制&#x…

2026/7/23 7:03:38阅读更多 →
40万人次涌入上海WAIC 2026!揭秘AI十大核心趋势

40万人次涌入上海WAIC 2026!揭秘AI十大核心趋势

趋势一:WAIC变成中国AI世界杯,模型产品合作汇聚一堂本届WAIC,展会的 "发布周期" 不断拉长,深度绑定核心展期。前几年,WAIC多为前沿技术陈列场;今年,展台与产品发布会等同步。头部AI企…

2026/7/23 7:03:38阅读更多 →
现代C++核心技术与工程实践:从RAII到并发编程的深度解析

现代C++核心技术与工程实践:从RAII到并发编程的深度解析

1. 项目概述:为什么今天还要深入C?最近在社区里看到不少讨论,说C是不是“过时”了,是不是该被Rust、Go这些后起之秀取代了。作为一个从C98时代一路摸爬滚打过来的老码农,我的看法是:它不仅没过时&#xff0…

2026/7/23 7:03:38阅读更多 →
B站标题优化实战:从关键词选择到三段式结构提升点击率

B站标题优化实战:从关键词选择到三段式结构提升点击率

这类标题优化需求最值得先看的不是技巧列表,而是能不能在真实搜索环境下稳定提升点击率。很多教程会直接扔给你一堆“三段式”“长尾词”规则,但实际落地时最容易卡住的是关键词选择、语句自然度和平台适配这三个环节。我更建议把优化过程拆成四步&#…

2026/7/23 7:03:38阅读更多 →
AI工具如何提升学术写作效率:从选题到投稿的全流程指南

AI工具如何提升学术写作效率:从选题到投稿的全流程指南

1. 学术写作的痛点与AI工具的价值写论文这事儿,从选题到发表至少得掉三把头发——这是我在高校带研究生十年最深的体会。去年指导的博士生小张,光是文献综述就返工了五次,最后一次交稿时眼里的红血丝让我想起自己当年通宵改格式的惨痛经历。直…

2026/7/23 7:03:38阅读更多 →
AMD大会前夕英伟达摊牌“卖AI工厂”战略,Vera CPU多项性能超传统x86

AMD大会前夕英伟达摊牌“卖AI工厂”战略,Vera CPU多项性能超传统x86

在AMD “Advancing AI 2026大会”前夕,英伟达抢先公布数据中心CPU产品Vera技术细节,这是其从“卖显卡”向“卖AI工厂”战略的摊牌。专为代理式AI定制Vera是全球首款从核心层面专为代理式AI量身定制的处理器。Vera Rubin NVL72已进入量产爬坡,…

2026/7/23 7:01:38阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:00:28阅读更多 →
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:28阅读更多 →
油泥处理设备哪里能买到

油泥处理设备哪里能买到

油泥处理设备哪里有?这是许多从事油田、炼化、清罐业务的从业者最关心的问题。根据河南三丰环保设备有限公司的行业经验,选购油泥处理设备的核心在于设备能否适配当地环保法规与原料特性,而非单纯看价格。该公司总经理王钦田先生指出&#xf…

2026/7/23 0:00:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/22 18:55:50阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/22 18:55:50阅读更多 →