如何在同一个 MS SQL Server 实例上的多个数据库中使用 Spring Data JDBC?

问题描述

我继承了一个带有大量 MSsql 数据库实例的旧应用,其中数据模型分布在同一个 sql Server 实例上的多个数据库中。

在 T/sql 中,您通常可以在同一实例 (SELECT ... FROM DB_X.dbo.table1 JOIN DB_Y.dbo.table2 ON ...) 上跨数据库运行查询(甚至连接),并且事务也按预期工作(即我可以在一个事务中修改 DB_X 和 DB_Y 中的数据) .

我想编写一个使用 Spring Data JDBC 访问数据模型的新 Java 程序,但我找不到如何将实体映射到不同数据库中的表的方法

我找到了有关如何连接到多个数据库文章,但它们涉及定义多个连接和单独的事务(即它们实际上适用于多个数据库,如不同实例甚至不同数据库类型)。

但是,我只想使用一个连接和单个事务(即,遗留代码使用普通 JDBC 访问数据库的方式相同)。

可以实现吗?

解决方法

我认为您会在 schema 定义中使用 Table 属性。 JPA Table Spec