目前正在做一个项目,我的 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(使用前将#替换为@)