Design patterns 如何为跨越两个数据库的对象构造数据访问层?

Design patterns 如何为跨越两个数据库的对象构造数据访问层?,design-patterns,service,dao,data-access-layer,Design Patterns,Service,Dao,Data Access Layer,我继承了一个遗留系统,其中表分散在多个数据库服务器上。我有一个返回用户对象的DAO。当用户表位于一个数据库中时,它引用存储在其他数据库中的属性ID。例如,jobtitle_ID在表中,但job_titles表在不同服务器上的另一个数据库中,在不同的rdbms中(不可能有数据库链接) 我需要一个完整的用户对象,所以我一直在传递两个单独的数据库连接。这是可行的,但我不确定它是否合适 下一个挑战是,在我的第一个DB中有几个表引用了jobtitles表。所以现在我不得不在每个DAO中编写几乎相同的检索查

我继承了一个遗留系统,其中表分散在多个数据库服务器上。我有一个返回用户对象的DAO。当用户表位于一个数据库中时,它引用存储在其他数据库中的属性ID。例如,jobtitle_ID在表中,但job_titles表在不同服务器上的另一个数据库中,在不同的rdbms中(不可能有数据库链接)

我需要一个完整的用户对象,所以我一直在传递两个单独的数据库连接。这是可行的,但我不确定它是否合适

下一个挑战是,在我的第一个DB中有几个表引用了jobtitles表。所以现在我不得不在每个DAO中编写几乎相同的检索查询,以从该表中获取行

我考虑过将jobtitles检索代码提取到它自己的DAO中,并将其传递到每个使用它的DAO中,但这似乎也是一个禁忌

几乎感觉我的服务需要与一个中介进行对话,该中介将这两个DAO的结果合并在一起,这样它就可以得到一个完整的用户对象,其中包括职位,而不仅仅是它的ID

我应该如何应对这一挑战?围绕这些数据库构建的内容太多,我无法移动jobtitles表