2015-10-13 76 views
0

我試圖擺脫現有的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

回答

1

techpunch article在我看來,你可以簡單地在你的實體名稱選項中使用「點」分隔符,其他所有內容都保持不變。因此,您可以按原樣使用實體,併爲您選擇適當的數據庫。

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

這隻能並且還有將數據庫名稱「硬編碼」到實體中的缺點。只是要注意的事情。 – Cerad

+0

什麼可能是將數據庫名稱硬編碼到實體中的缺點? – Dennis

+0

那麼在正常情況下,您可以將數據庫名稱指定爲配置項目,以便於更改或指向測試數據庫。硬編碼意味着您需要更改代碼以更改數據庫名稱。 – Cerad

相關問題