Ana*_*nth 6 spring multi-tenant spring-data-jpa spring-boot
目前正在开发一个项目,其中我的 Spring Boot 项目需要利用同一数据库服务器中的多个数据源或架构。我发现了几个在 Spring Boot 中教授多个数据源配置的教程,其中实体 foo 存在于数据源 A 中,而 bar 存在于数据源 B 中,如下所示。
https://scattercode.co.uk/2016/01/05/multiple-databases-with-spring-boot- and-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,我必须遍历架构 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,但这两者都谈论在任何时间点访问单个模式。我只需要一些指导或链接即可完成此任务。
提前致谢。
您需要查看 AbstractRoutingDataSource并使用它。
因此,如果我需要搜索用户 John Doe,我必须遍历架构 1,如果找不到他,请转到下一个架构。
因此,您需要在第一个模式中搜索,如果找不到,则继续到下一个模式。
在上面链接中给出的示例中,
CustomerContextHolder.setCustomerType(CustomerType.GOLD);
List<Item> items = catalog.getItems();
if(isEmpty(goldItems)){
CustomerContextHolder.setCustomerType(CustomerType.SILVER);
items = catalog.getItems();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8708 次 |
| 最近记录: |