同一个类中,对于@Transactional注解的方法调用,事务传播行为不会生效

java 复制代码
	
	@Service  
	public class MyService {  
	  
	    @Transactional  
	    public void methodA() {  
	        // some database operations  
	        methodB();  
	    }  
	  
	    @Transactional(propagation = Propagation.REQUIRES_NEW)  
	    public void methodB() {  
	        // some other database operations  
	    }  
	}

这里,即使methodB上标注了@Transactional并要求新的事务Propagation.REQUIRES_NEW

但是,当methodA内部调用methodB时,

这个事务传播行为不会生效,

因为,methodA内部调用methodB是直接的Java方法调用,不会经过Spring的代理。

说白了就是,

methodAmethodB 默认情况下是在同一个事务中的,

因为 methodB 是从 methodA 内部直接调用的,不经过Spring的事务代理,

由于这种直接调用绕过了代理,methodB 上的 @Transactional 注解不会生效,

因此 methodAmethodB 的操作都会在同一个事务中执行。

相关推荐
xcl09255 小时前
幼儿托育系统开发实战:从需求分析到上线全流程指南
java·大数据·需求分析
吴声子夜歌5 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
小小猪的春天5 小时前
Java 手写第一个 MCP Server:Spring AI MCP 半小时跑通
java·人工智能·spring boot·ai编程
find1star5 小时前
LeetCode 141:环形链表
java·算法·leetcode·链表
今天AI了吗6 小时前
DeepSeek Harness 深度解析:从评测架构到实战落地
java·网络·数据库·人工智能·架构·java-ee
许彰午6 小时前
27-AuthService登录链路
java·低代码·架构
泡海椒6 小时前
JQuick-Curl 性能分析:并发场景下的性能表现与调优,第三方接口调用不只要快写也要稳跑
java·开发语言·okhttp
Rain的Java大神之路7 小时前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
自动化监测Learner7 小时前
Navicat Premium 17 中文版安装教程(2026最新版)
java·linux·数据库
那个松鼠很眼熟w7 小时前
4.Spring-Ai入门案例
java·人工智能·spring