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

RuoYi配置多数据源失效

RuoYi配置多数据源失效

  • 配置多数据源
  • 报错
  • 排查思路
  • 解决

配置多数据源

官方文档也有,csdn也很多,推荐
若依微服务中配置 MySQL + DM 多数据源
一步一步来操作,理论上就是配置好了

报错

遇到一个问题就是,在Service层顶上配置了数据源,数据库B,但是在某一个方法执行后报错:数据库A.表,不存在。

排查思路

思路仅仅是分享我的操作流程,不感兴趣直接最后结论。

1.注解给出完成数据库.表名
在不同数据源的实体类下添加注解,指出数据库.表

@Data
@TableName("数据库.t_app_user")
public class TAppUser {

观察报错,同一个服务器下的不同数据库,会有一个报错是说什么用户的操作权限不够(可以根据账户,确定此时用的数据源是哪个,同时一般此时数据源也是默认数据源)

  • 确定了默认数据源
  • 确定当前Service使用的数据源(切换源注解是否有效)

2.验证其他的数据源
使用其他数据源的services,操作是否能成功。
我的情况是在一个Service(注解使用库源B),一个方法中两次操作,前一次操作成功,后一次操作失败
两次操作都是需要使用数据源B,不管我是在Service、mapper、方法上添加数据源切换注解,后一次操作始终不成功。

  • 前一次成功,说明数据源配置、切换、使用没问题

3.观察日志
在这里插入图片描述
在进入一个Service时,由于直接切换数据源,会有切换日志,报错点就在最后紫色框子。
我的判断是在一个数据源B的Services1,写了一个方法,方法内有两个字方法进入了其他Service2、Services3。
前一次操作由于第一次操作,可以顺利。->Services1->切换->Services2->切换->正常使用
后一次操作需要上一次退回,再操作。->Services2->Services1->使用
在这里插入图片描述

解决

保证由一个Service1,调用其他源的Service2、Service3…,其他源的Service就只做自己源相关的操作;
不要在一个A源Service1下写一个方法,先去调用A源下其他Servcie2,再回到A源Service1(这一步会出错,会使用默认的数据源);可以参考排查思路三中的图片。

http://www.dtcms.com/a/290658.html

相关文章:

  • vscode 使用说明二
  • 前端图像视频实时检测
  • AJAX 概念与 axios 使用
  • AI探索 | 基于 Node.js 开发 MCP 客户端+服务端及优秀项目分享
  • 【华为机试】240. 搜索二维矩阵 II
  • Node.js- node管理工具nvm
  • Git上传与下载GitHub仓库
  • 新手向:基于Python的快捷启动器(本地应用/文件秒开工具)
  • 本地项目提交到git教程
  • 代码随想录算法训练营二十二天|回溯part04
  • 第十八节:第八部分:java高级:动态代理设计模式介绍、准备工作、代码实现
  • 【设计模式C#】简单工厂模式(用于简化获取对象实例化的复杂性)
  • Spring Boot注解详解
  • PDF 表单字段属性详解
  • 泛型:C#中的类型抽象艺术
  • 三款适合户外探险、应急救援的智能三防手机,各有各的优势
  • kafka 日志索引 AbstractIndex
  • Elasticsearch X-Pack安全功能未启用的解决方案
  • 模型系列(篇一)-Bert
  • 暑期算法训练.5
  • 分布在内侧内嗅皮层(MEC)的带状细胞对NLP中的深层语义分析有什么积极的影响和启示
  • [硬件电路-64]:模拟器件 -二极管在稳压电路中的应用
  • Facebook 开源多季节性时间序列数据预测工具:Prophet 乘性季节性 Multiplicative Seasonality
  • JS实现矩阵左右旋转90度
  • uniapp app pdf.js报错:Uncaught SyntaxError:Unexpected token ‘{‘
  • 5道挑战题writup
  • 单体VS微服务:如何选择最适合的架构?
  • 人工智能之数学基础:事件间的关系
  • Leetcode力扣解题记录--第189题(巧思数组翻转)
  • 【MySQL】Linux配置MySQL Windows远程连接