问题描述
我继承了一个带有大量 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