当前位置: 首页 > news >正文

SpringBoot同时使用MyBatis事务以及MongoDB事务

SpringBoot同时使用MyBatis事务以及MongoDB事务

问题

SpringBoot项目中某个业务需要同时对MongoDB以及MySQL数据进行新增删除更改操作,但是默认提供的@Transactional只提供其中一种事务管理,不支持同时对2个事务进行管理。

解决办法

使用ChainedTransactionManager类进行多事务管理器处理,但是该类已经被标记为@Deprecated不推荐使用,但是勉强能用。

@Configuration
@EnableTransactionManagement
public class TransactionConfig {/*** Mongo事务管理器* @param dbFactory 数据工厂* @return 事务管理器*/@Bean("mongoTransactionManager")public MongoTransactionManager mongoTransactionManager(MongoDatabaseFactory dbFactory) {return new MongoTransactionManager(dbFactory);}/*** mysql事务管理器* @param dataSource 数据源* @return 事务管理器*/@Bean("myBatisTransactionManager")// 默认使用MySQL事务管理@Primarypublic DataSourceTransactionManager testTransactionManager(@Qualifier("dataSource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}@Bean(name = "chainedTransactionManager")public ChainedTransactionManager chainedTransactionManager(@Qualifier("myBatisTransactionManager") PlatformTransactionManager myBatisTransactionManager,@Qualifier("mongoTransactionManager") MongoTransactionManager mongoTransactionManager) {return new ChainedTransactionManager(myBatisTransactionManager, mongoTransactionManager);}
}
http://www.dtcms.com/a/568567.html

相关文章:

  • 上海建筑网站大全贵阳网页设计培训班
  • jQuery UI 小部件方法调用
  • Robot栏配置
  • 基于openresty实现短链接跳长链接服务
  • tcl脚本|异步FIFO约束
  • C语言基础之指针
  • 郑州网站制作工具龙岩网站建设馨烨
  • 沈阳网站建设的公司软件网站下载免费
  • iOS SwiftUI 动画开发指南
  • LeetCode算法学习之验证回文串
  • 深入掌握 OpenCV-Python:从图像处理到智能视觉
  • 运输层协议概述及UDP
  • 【多所高校合作】第四届图像处理、计算机视觉与机器学习国际学术会议(ICICML 2025)
  • 什么网站做h5做得好登录不上wordpress
  • 个人制作的网站模板自助建站自己要做网站的来看下
  • 第十五周Fscan和利用漏洞上线远程和数据库提权上线远控
  • 第5章 所有权系统
  • 从零开始学Flink:事件驱动
  • 机器学习实现逻辑回归-癌症分类预测
  • Kafka 从入门到精通完整指南
  • 常见二三维GIS数据分类及处理流程图
  • LLM结构化输出:约束解码、CFG和response_format
  • 做网站麻烦不文山网站建设求职简历
  • wordpress网站静态页面外国食品优秀设计网站
  • hybrid
  • C++中malloc、free和new、delete的区别
  • 计算机视觉:python车辆行人检测与跟踪系统 YOLO模型 SORT算法 PyQt5界面 目标检测+目标跟踪 深度学习 计算机✅
  • 提高肠氧饱和度测量精度的新技术评估
  • 【数据集+源码+文章】基于yolov8+streamlit的12种水果品质、成熟度检测系统
  • Camera参数(3A)