具有相同实体和存储库的多个数据源

2023-12-03

目前正在做一个项目,我的 Spring Boot 项目需要 在同一数据库服务器中利用多个数据源或模式。我有 找到了几个教授多数据源配置的教程 spring boot,其中实体 foo 存在于数据源 A 中,而 bar 存在于 数据源B如下所示,

https://scattercode.co.uk/2016/01/05/multiple-databases-with-spring-boot-和-spring-data-jpa/https://scattercode.co.uk/2013/11/18/spring-data-multiple-databases/ https://medium.com/@joeclever/using-multiple-datasources-with-spring-boot-and-spring-data-6430b00c02e7

但我的用例是实体 foo 和 bar 存在于多个模式中,我想使用单个实体和存储库来访问所有模式。数据不会在所有模式中复制。它是在它们之间划分的。

因此,如果我需要搜索用户 John Doe,我必须遍历 Schema 1 并 如果我找不到他,请转到下一个模式。

我已经尝试了上述所有教程(即使它们与我的不符) 用例),希望我可以破解它,让它像一个 概念证明。 我还研究过 AbstractRoutingDataSource (http://fizzylogic.nl/2016/01/24/make-your-spring-boot-application-multi-tenant-aware-in-2-steps/ , http://kimrudolph.de/blog/spring-datasource-routing) 和 MultiTentancy,但这两者都讨论了访问单个 任何时间点的架构。 我只需要一些指导或链接即可完成此任务。

提前致谢。


你需要看看抽象路由数据源并使用它。

因此,如果我需要搜索用户 John Doe,我必须遍历架构 1,如果找不到他,请转到下一个架构。

因此,您需要在第一个模式中搜索,如果找不到,则继续到下一个模式。

在上面链接中给出的示例中,

 CustomerContextHolder.setCustomerType(CustomerType.GOLD);
 List<Item> items = catalog.getItems();
 if(isEmpty(goldItems)){
  CustomerContextHolder.setCustomerType(CustomerType.SILVER);
  items = catalog.getItems();  
 }

可以找到更多详细信息在另一个qn这里

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有相同实体和存储库的多个数据源 的相关文章

随机推荐

  • UIImage 的宝丽来滤镜

    我正在尝试在 iPhone 中实现一些图像滤镜 例如宝丽来 我搜索了如何过滤现有的 UIImage 将其转换为polaroid风格和遇到this堆栈溢出链接 以那里的答案为起点 我循环遍历图像的每个像素 获取 RGB 值 并将它们转换为 H
  • 如何使用 easymock 模拟类中的静态方法?

    假设我有一个像这样的课程 public class StaticDude public static Object getGroove some complex logic which returns an object 如何使用简单模拟来
  • 列表视图内存泄漏

    我有一个带有适配器的简单列表视图 我动态创建了 10 多个列表视图项目 然后我一次又一次地上下滚动 我可以看到可用内存不断减少 我需要在哪里免费以及什么 注意 有一个图像视图 但在我的测试中我没有使用任何图像 所以它是 View GONE
  • 删除边框样式会更改页面布局

    我对以下 HTML CSS 代码有疑问 CSS padding 0 margin 0 border none outline none container margin 10px auto 10px auto width 960px bac
  • 使用javax.swing.Timer在Java中制作倒计时器[重复]

    这个问题在这里已经有答案了 可能的重复 有条件的停止计时器仅在第一次有效 我对如何使用 swing 而不是 util 计时器制作计时器感到非常困惑 我正在制作一款游戏 用户必须在 30 秒的时间内回答问题 我有一个 PlayFrame 其中
  • 选择第一个和最后一个时间戳,其中 userID 是唯一的

    我正在尝试执行查询来获取每个唯一用户的第一个和最后一个时间戳 数据库看起来像这样 ID EventID Timestamp Person Number 1 2 2015 01 08 17 31 40 7 5 2 2 2015 01 08 1
  • 如何“强制”python 使用特定版本的模块?

    我是 python 新手 所以如果这个问题在其他地方用我没有想到的标签得到了回答 我深表歉意 我正在尝试将 numpy 从现在的 1 6 版本更新到 1 8 我已经在我的 python 站点包中安装了 numpy 当我调用 numpy 时
  • 在 Node-FFI 中使用 SendInput

    我想使用 Nodejs 中 Windows Api 的 SendInput 函数 使用 FFI 包 我对 C 的了解有限 所以我无法真正弄清楚我遇到了什么问题 我基本上是想虚拟地按下键盘上的一个键 这就是我的代码 var ffi requi
  • 如何从椭圆图像中找到上下弧的长度

    在这里 我尝试使用图像矢量 图像轮廓 找到上弧和下弧 但它无法给出提取结果 建议任何其他方法从图像中找到上弧和下弧及其长度 这是我的代码 Mat image cv imread thinning 20d jpg int i 0 j 0 k
  • mmap vs sbrk,性能比较

    这些调用中哪个平均速度更快 我听说过mmap对于较小的分配来说速度更快 但我还没有听说过两者的比较 任何有关这些性能的信息都会很好 您应该使用特定的实现来标记它 例如linux 因为答案肯定会因实现而异 现在我假设Linux 因为它是最流行
  • javascript: 为什么这个 return 语句会导致语法错误?

    我使用的是Apatana 3 我稍微修改了JS代码格式化程序 让它看起来更清晰 下面是格式化后的代码 它给了我一个错误 copyOffset function index return x index y index 萤火虫给我 Synta
  • Ionic 3从app.component类重定向到另一个页面

    我收到推送通知消息 收到消息后 我想重定向到另一个页面或显示另一个页面而不是主页 NavController在这里不起作用 所以我想知道什么可以 export class MyApp rootPage any HomePage constr
  • 从 Java 应用程序连接到 Spark Standalone 时,为什么会抛出“无法在已停止的 SparkContext 上调用方法”?

    我已经下载了为 Hadoop 2 6 及更高版本预构建的 Apache Spark 1 4 1 我有两台 Ubuntu 14 04 机器 我将其中一台设置为具有单个从属设备的 Spark 主设备 第二台机器运行一个 Spark 从设备 当我
  • 如何使用doctrine2中的日期字段类型规定年份范围

    我需要 Symfony2 站点表单中的日期下拉列表 并且在我的表单生成器中使用 日期 字段类型 这里是我的报关表 builder gt add date date array label gt Date format gt dd MM yy
  • Firebase Android - .setValue() 时因“发现名称冲突的设置器:setGregorianChange”而崩溃

    我正在使用 FirebaseDatabase 但无法解决非常烦人的崩溃 每次我尝试执行 FirebaseDatabase getInstance getReference child push setValue 应用程序崩溃 我收到以下消息
  • 为什么 sed 不替换所有出现的情况?

    如果我在 bash 中运行这段代码 echo dog dog dos sed r s dog log 它给出输出 log dog dos 我怎样才能让它取代所有出现的狗 您应该添加g修饰符以便 sed 执行global替换模式缓冲区的内容
  • 如何将值传递给 jQuery Ajax 成功处理程序

    在 jQuery 中进行以下 Ajax 调用 getSomeData function args myUrl foo ajax type GET url myUrl data args async true dataType json su
  • BigDecimal 在与浮点数转换时不保留舍入值[重复]

    这个问题在这里已经有答案了 我有一个使用 BigDecimal setScale 将浮点数四舍五入到 n 位数字的函数 private float roundPrice float price int numDigits BigDecima
  • PHP 函数和包含的脚本中未定义的变量

    我已经阅读了很多关于这个问题的文章 但是我仍然无法解决它 在我的函数文件中 我声明了一个具有如下值的变量 px host localhost 我有一个数据库查询功能 如下所示 function dbQuery database reqque
  • 具有相同实体和存储库的多个数据源

    目前正在做一个项目 我的 Spring Boot 项目需要 在同一数据库服务器中利用多个数据源或模式 我有 找到了几个教授多数据源配置的教程 spring boot 其中实体 foo 存在于数据源 A 中 而 bar 存在于 数据源B如下所