7

我正在使用 Spring Boot 1.5.18.RELEASE。

我使用以下链接关注了多个数据源:

但是当我在同一台服务器中有数据源时它可以工作。

这是我的情况:

  1. datasource1 在一个服务器上:server1
  2. 另一台服务器上的数据源2:server2
  3. 使用本机查询,我必须通过加入 2 个数据源来获取记录。

在上述情况下,spring boot 应用程序仅尝试检查服务器 1 中的表,结果我得到了类似的 sql 异常

SqlExceptionHelper - SQL Error: 1146, SQLState: 42S02

SqlExceptionHelper - Table 'datasource2.table2' doesn't exist

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 
'datasource2.table2' doesn't exist

如何解决这个问题?

4

2 回答 2

0

如果您的表属于同一服务器(无论数据库(相同或不同)如何),则可以相互连接。但是,如果它们属于不同的服务器,那么 MySql 将它支持为FEDERATED Engine。您可以查看此问题以获取更多详细信息。

于 2020-01-08T09:45:06.227 回答
0

不,你不能这样做。由于每个 JPARepository 只属于 EntityManager 并且实体管理器与单个数据库相关。

于 2019-07-11T08:43:51.037 回答