Can Doctrine可以对来自多个数据库的表执行SELECT操作吗?

问题描述:

我试图摆脱现有的SQL教义Can Doctrine可以对来自多个数据库的表执行SELECT操作吗?

举例来说,如果我有像这样的查询:

SELECT column_list 
FROM db1 
INNER JOIN db2 ON db1.col=db2.col 
INNER JOIN db3 ON db2.col=db3.col 
WHERE where_conditions; 

能学说可以用来匹配上面的SQL?

目前看来,我认为原则可以与多个实体分别工作,但我还没有发现的文件上学说是否能结合的实体整合到一个SELECT命令。

我认为有一个解决方法是分别使用多个实体,即将上面的查询拆分成只有一个数据库涉及任何一个查询的地方,但是如果有的话,我会犹豫如何是一个更好的方法。

+0

发现这篇文章,如果这两个数据库在同一台服务器上,可能会有帮助https://techpunch.co.uk/development/using-multiple-databases-with-symfony2-and-doctrine2 – Dennis

techpunch article在我看来,你可以简单地在你的实体名称选项中使用“点”分隔符,其他所有内容都保持不变。因此,您可以按原样使用实体,并为您选择适当的数据库。

/** 
* @Entity 
* @Table(name="database_name.table_name") 
*/ 
class YourEntity 
+0

这只能并且还有将数据库名称“硬编码”到实体中的缺点。只是要注意的事情。 – Cerad

+0

什么可能是将数据库名称硬编码到实体中的缺点? – Dennis

+0

那么在正常情况下,您可以将数据库名称指定为配置项目,以便于更改或指向测试数据库。硬编码意味着您需要更改代码以更改数据库名称。 – Cerad