具有相同实体和回购协议的多个数据源
Multiple Data Sources with same entity and repo
目前正在处理我的 Spring 引导项目需要的项目
在同一数据库服务器中利用多个数据源或模式。我有
在中找到了几个教多数据源配置的教程
spring 启动,其中实体 foo 存在于 DataSource A 中,bar 存在于
下面是DataSource 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 存在于多个模式中,我想使用单个实体和存储库来访问所有 schema.Data 未在所有 schema.It 中复制其中。
因此,如果我需要搜索用户 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,但这两者都谈论访问单个
任何时间点的模式。
我只需要一些指导或 link 来遵循并完成此任务。
提前致谢。
您需要查看 AbstractRoutingDataSource 并使用它。
So if I need to search for User John Doe I have to go through Schema 1 and if I don't find him, move onto the next schema.
因此您需要在第一个模式中搜索,如果没有找到,则继续下一个模式。
在上面给出的例子中link,
CustomerContextHolder.setCustomerType(CustomerType.GOLD);
List<Item> items = catalog.getItems();
if(isEmpty(goldItems)){
CustomerContextHolder.setCustomerType(CustomerType.SILVER);
items = catalog.getItems();
}
可以找到更多详细信息in another qn here
使用 https://github.com/wmeints/spring-multi-tenant-demo 设法解决了问题。
感谢@surya 的推荐。
目前正在处理我的 Spring 引导项目需要的项目 在同一数据库服务器中利用多个数据源或模式。我有 在中找到了几个教多数据源配置的教程 spring 启动,其中实体 foo 存在于 DataSource A 中,bar 存在于 下面是DataSource 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 存在于多个模式中,我想使用单个实体和存储库来访问所有 schema.Data 未在所有 schema.It 中复制其中。
因此,如果我需要搜索用户 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,但这两者都谈论访问单个 任何时间点的模式。 我只需要一些指导或 link 来遵循并完成此任务。
提前致谢。
您需要查看 AbstractRoutingDataSource 并使用它。
So if I need to search for User John Doe I have to go through Schema 1 and if I don't find him, move onto the next schema.
因此您需要在第一个模式中搜索,如果没有找到,则继续下一个模式。
在上面给出的例子中link,
CustomerContextHolder.setCustomerType(CustomerType.GOLD);
List<Item> items = catalog.getItems();
if(isEmpty(goldItems)){
CustomerContextHolder.setCustomerType(CustomerType.SILVER);
items = catalog.getItems();
}
可以找到更多详细信息in another qn here
使用 https://github.com/wmeints/spring-multi-tenant-demo 设法解决了问题。
感谢@surya 的推荐。