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

时间:2016-05-13 02:17:28

标签: design-patterns service dao data-access-layer

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

我需要为一个完整的用户对象进行水合,因此我已经传递了两个独立的数据库连接。这有效,但我不确定它是否合适。

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

我考虑将作业标题检索代码提取到自己的DAO中并将其传递给每个使用它的DAO,但这似乎也是禁忌。

几乎感觉我的服务需要与加入这两个DAO结果的中间人交谈,以便它可以获得包含作业标题的完整User对象,而不仅仅是其ID。

我应该如何应对这一挑战?围绕这些数据库构建了很多,我无法移动作业标记表。

0 个答案:

没有答案
相关问题