同一个类中方法调用,导致@Transactional失效

news2024/11/18 12:18:54

1.背景

查了一下Spring文档,就是上面这段话所说的情况。

2.Spring官方文档有这么一段话

https://docs.spring.io/spring-framework/docs/current/reference/html/data-access.html#transaction-declarative

In proxy mode (which is the default), only external method calls coming in through the proxy are intercepted. This means that self-invocation (in effect, a method within the target object calling another method of the target object) does not lead to an actual transaction at runtime even if the invoked method is marked with @Transactional. Also, the proxy must be fully initialized to provide the expected behavior, so you should not rely on this feature in your initialization code — for example, in a @PostConstruct method.

我有一个Service类,

有一个方法会被当前类之外的类调用,称之为“A方法”,

A方法调用同一个类的另一个方法,称之为“B方法”,@Transactional注解加在B方法上面,

再来看官方文档的这句话,only external method calls coming in through the proxy are intercepted. 在这个例子中,A方法和B方法属于同一个类,同一个类的两个方法之间的调用,并没有“coming in through the proxy”,没有穿过Spring的动态代理。这样就根本没有形成Spring事务。

另外一个类的方法调用A方法,跨越了两个类,这样才是穿过了Spring的动态代理。

因此这里必须把@Transactional注解写在A方法上面。我这样修改了之后,事务就会回滚了,验证了Spring官方文档的这段话是正确的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1687625.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker save load 镜像 docker手动上传导入镜像

docker手动上传导入镜像 因为一些服务器网络限制,导致拉取某些镜像的时候非常慢,可以使用手动的方式导入镜像 1、将镜像归档为tar文件 如果一台服务器里已经存在某个镜像,可以通过docker save 命令 把镜像打成tar包 docker save 命令用于将…

【Vue】Vue2使用ElementUI

目录 Element UI介绍特点Vue2使用Element安装引入ElementUI组件库 使用ElementUI用户注册列表展示其他 mint-ui介绍特点安装组件引入组件Mint-ui相关组件 Element UI 介绍 官网(基于 Vue 2.x ):https://element.eleme.cn/#/zh-CN ElementUI 是一个基于 Vue.js 的桌面端组件库…

K8S认证|CKA题库+答案| 11. 创建PVC

11、创建PVC 您必须在以下Cluster/Node上完成此考题: Cluster Master node Worker node ok8s master …

【加密与解密(第四版)】第二十二章笔记

第二十二章 补丁技术 补丁:文件补丁(修改文件本身的某个数据)和内存补丁(对正在运行的程序的数据进行修改,以达到某种效果) 22.1 文件补丁 文件补丁直接修改可执行文件或某功能模块的二进制代码。 22.2 内…

GPTS 精选:突破效率瓶颈,轻松领先一步别人下班

文章目录 优秀的GPTS推荐数据分析图像设计各种图表/流程图/序列图/思维导图联网搜索数学建模编程专属助手Python助手万能代码助手(Copilot)论文降重(重述/降重)文献搜索(Scholar AI,Scholar GPT&#xff09…

ssm/springoot养老院问诊服务预约系统_96316老年人服务系统

2.管理员: (1)登入注册页面:管理员进行操作时需要是已注册登入的 (2)权限管理:管理员登入后可以运用权限进行相应的操作管理。 (3)用户管理:对用户进行删除、…

C盘磁盘空间不够用,怎样将d盘的空间划分给c盘?

C盘磁盘空间不够用,怎样将d盘的空间划分给c盘? 背景:win10系统下。C盘原有50G,如今只剩下8G,已经捉襟见肘了,想从D盘,割100G给C盘,以后软件能直接装C盘了。操作步骤如下&#xff1a…

如何解读伊朗发布的直升机事故调查报告?一般事故调查报告应怎么写?

如何解读伊朗发布的直升机事故调查报告?一般事故调查报告应怎么写? 据央视新闻客户端消息:当地时间5月23日,伊朗武装部队总参谋部发布首份已故总统莱希及其随行人员乘坐的直升机事故调查报告。以下是#李秘书讲写作#对报告内容的解…

vue3+vite解决项目打包后本地图片等资源找不到的问题

1.在vite.config.js里面做如下配置 import { defineConfig } from vite import vue from vitejs/plugin-vueexport default defineConfig({base: ./, // 打包的静态资源引用路径plugins: [vue()], // 放插件用的resolve: {alias: {: /src // 配置/提示符}}, })上述配置主要就是…

【移花接木】OpenCV4.8 For Java 深度学习 实时人脸检测

学习《OpenCV应用开发:入门、进阶与工程化实践》一书,学会本文所有技能就这么简单! 做真正的OpenCV开发者,从入门到入职,一步到位! 前言 我写这篇文章之前,我搜索整个网络文章跟问各种语言大模…

【Nuxt系列文章】Nuxt3如何更优雅的使用ESLint?

前言 大家好,我是刘明,十年创业老兵,开源技术爱好者。 之前我写了一些关于Nuxt3的技术文章,有些同学很感兴趣。这里做个汇总,大家可以直接点击链接查看。 【Nuxt系列文章】Nuxt3.6带来哪些新特性? 【Nuxt…

【minio】minio文件访问不到问题记录

问题描述: 项目上上传了logo,但是无法回写logo,但是文件minio路径已经返回,并且到minio服务器上也能下载文件; 解决方案: 1.排查Nginx的代理的minio是否正确 2.登录minio服务查一下文件路径policy是否设置访…

【数据结构】树和二叉树的定义 |二叉树的基本特点和性质 |存储与遍历 |递归

专栏文章:数据结构学习笔记 作者主页:格乐斯 前言 树和二叉树的定义 二叉树的基本特点和性质 二叉树的存储与遍历 树的定义 树是n(n>0)个结点的有限集合; 若n0,称为空树; 若n>0,称为非空树&#xf…

【GUI开发基础】

GUI开发基础 🌟项目文件组成✨浅析Pro文件配置 🌟Qt设计师🌟剖析UI文件运行机制🌟UI设计方式✨可视化UI设计✨代码化UI设计 🌟项目文件组成 创建一个QtGUI项目: open QtCreator —> select Creator Pr…

2024 电工杯高校数学建模竞赛(B题)| 平衡膳食食谱 |建模秘籍文章代码思路大全

铛铛!小秘籍来咯! 小秘籍团队独辟蹊径,运用负载均衡,多目标规划等强大工具,构建了这一题的详细解答哦! 为大家量身打造创新解决方案。小秘籍团队,始终引领着建模问题求解的风潮。 抓紧小秘籍&am…

2024 电工杯高校数学建模竞赛(A题)数学建模完整思路+完整代码全解全析

你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 作为经验丰富的数学建模团队,我们将为你带来2024电工杯数学建模竞赛(B题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解…

【计算机网络原理】浅谈应用层协议的自定义和传输层UDP协议的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

Javascript特效之鼠标悬停特效【css】

先看一看效果&#xff0c;是不是很炫酷啊&#xff1f;&#xff1f; HTML代码&#xff1a; <!DOCTYPE html> <html><head><meta charset""UTF-8"" /><title>CSS特效&#xff1a;鼠标悬停效果</title><link rel&q…

LeetCode 132题详解:使用动态规划与中心扩展法解决分割回文串 II 的最少分割次数问题

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…