2010-07-24 22 views
3

在學說,什麼是常規和獲取加入之間的差異?我沒有得到它只是通過閱讀docs主義常規vs取得加入

// regular 
$query = $em->createQuery("SELECT u FROM User u JOIN u.address a WHERE a.city = 'Berlin'"); 
$users = $query->getResult(); 

// fetch 
$query = $em->createQuery("SELECT u, a FROM User u JOIN u.address a WHERE a.city = 'Berlin'"); 
$users = $query->getResult(); 

什麼是獲取連接的目的?如果我select u, a爲什麼我只是users$users = $query->getResult();)?如果我使用常規加入,我大概可以使用$user->getAddresses()訪問相關對象?

回答

8

我認爲文檔描述得非常好。如果您使用讀取連接,相關實體將包含在水合結果中。否則,他們不會,如果您嘗試訪問它們,它會觸發另一個查詢來獲取信息。

這只是它是否應該包含在結果中的問題。

+0

哦icic,我沒有得到該部分閱讀文檔。所以我想我做了一個fetch連接,如果我知道我想使用相關的對象,出於性能的原因? – 2010-07-24 06:58:27

+0

這就是主意,是的。 – 2010-07-24 07:10:48