解决@Transactional注解的方法切换数据源失效问题
只是其中一个场景
场景:加了注解@Transactional的方法中切换数据源查询数据时导致事务失效。如在A方法中加事务默认数据源是ds1,现在要调用另外一个数据源ds2的方法B。
有效解决方法:(只限于切换数据源查询)
可在B方法上增加注解@Transactional(propagation = Propagation.NOT_SUPPORTED)
这样在切换数据源时会以非事务方式执行,原主逻辑事务依旧生效。
-
-
-
public BaseResult balance(Map<String, Object> paraMap) throws ParseException {
-
List<Map<String, Object>> unitList = piTgfxAdbService.getUnitList();
-
}
-
-
-
public List<Map<String, Object>> getUnitList() {
-
return piTgfxAdbMapper.getUnitList();
-
}
有几种是不走事务执行的,所以也需要额外注意下
事务 |
特点 |
REQUIRED |
默认,如果存在事务,则支持当前事务;不存在,则开启一个新事务 |
SUPPORTS |
如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行 |
MANDATORY |
需要在一个正常的事务内执行,否则抛异常 |
REQUIRES_NEW |
不管存不存在事务,都开启一个新事务 |
NOT_SUPPORTED |
不管存不存在,都以非事务方式执行,当存在事务时,挂起事务 |
NEVER |
非事务方式执行,如果存在事务,则抛异常 |
NESTED |
如果不存在事务,则开启一个事务运行;如果存在事务,则运行一个嵌套事务 |
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfkjkib
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13