2
Doctrine 2是否支持自動JOIN生成?也就是說,假設我有與一些產品的實體,每個都有一個類別相關聯的賣家實體,做這樣的事情Doctrine 2中的自動JOIN生成
$sellers = $entityManager->getRepository('Foo\Bar\Seller')->findBy(array('country' => 'US'), array('populate' => array('Product', 'Product.Category')));
foreach ($sellers as $seller) {
doStuffWith($seller->product->category);
}
整個事情將採取單一的查詢,因爲教義將加入產品和分類表到賣家表並使用結果預先填充關聯。是這樣的可能嗎?
DQL不是我自動調用的。渴望提取會很好(並且似乎可以[動態啓用它](http://readthedocs.org/docs/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#temporarily -dis-mode-in-dql)),但據我所知,它仍然會產生一堆查詢:而不是一個JOIN,它會做類似於'SELECT * FROM sellers','SELECT * FROM產品WHERE ID IN(...)'˙,'SELECT * FROM WHERE id IN(...)'類別,這仍然是一個慢點。或者我誤解了一些東西? – Tgr
據我所知,一個急切的抓取應該做一個JOIN。我真的不明白爲什麼它會使用這樣的IN查詢 –
非常感謝!這個解決方案(在關係中獲取= EAGER)在我的一個頁面上將查詢數從111減少到了9!真棒解決方案。從未聽說過。 –