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

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.xdnf.cn/news/15883.html

相关文章:

  • 【烧脑算法】拓扑排序:从“依赖”到“序列”,理解题目中的先后逻辑
  • 虚拟电厂蓄势:源网荷储联动如何实现电力系统的 “智慧蝶变”?
  • 如何升级到macOS Tahoe:全面指南与实用步骤
  • 从一开始的网络攻防(六):php反序列化
  • 关于JavaWeb的总结笔记
  • 云原生周刊:K8s 中的后量子密码学
  • 【学习路线】C#企业级开发之路:从基础语法到云原生应用
  • docker 容器学习
  • zabbix企业级分布式监控环境部署
  • 【Prometheus+Grafana篇】监控通过Keepalived实现的MySQL HA高可用架构
  • 在翻译语义相似度和会议摘要相似度评估任务中 ,分类任务 回归任务 生成任务区别
  • 布局AI +文化新赛道,浙江省文化产业投资集团赴景联文科技调研交流
  • uniapp【uni-ui】【vue3】样式覆盖方式记录
  • Git上传与下载GitHub仓库
  • Neo4j 5.x版本的导出与导入数据库
  • 【系统全面】Linux内核原理——基础知识介绍
  • Python-数据库概念-pymysql-元编程-SQLAlchemy-学习笔记
  • 【ASP.NET Core】ASP.NET Core中Redis分布式缓存的应用
  • Python day20 - 特征降维之奇异值分解
  • 隧道代理的动态IP切换机制与实现原理
  • 农村供水智慧化管理系统:从精准监测到智能调度,破解农村用水安全与效率难题
  • 康复器材动静态性能测试台:精准检测,为康复器械安全保驾护航
  • Gradio项目部署到魔搭创空间
  • 开发避坑短篇(3):解决@vitejs plugin-vue@5.0.5对Vite^5.0.0的依赖冲突
  • [特殊字符] Java反射从入门到飞升:手撕类结构,动态解析一切![特殊字符]
  • Dockerfile 完全指南:从入门到精通
  • Three.js 全景图(Equirectangular Texture)教程:从加载到球面映射
  • AR技术:石化行业培训的“游戏规则改变者”
  • 【C语言】字符串与字符函数详解(下)
  • 【UE5医学影像可视化】读取dicom数据生成2D纹理并显示