首先我將舉一個僞代碼的例子,然後我將解釋什麼是問題。讓我說我有兩個實體用戶和電話號碼。他們的關係是一對多的。在我UserRepository我能有這樣的事情:學說取得加入
class UserRepository
{
public function getUser($id, $type)
{
$users = $this->createQuery("SELECT u, p FROM User u JOIN u.phonenumbers p
WHERE u.id = :id AND p.type = :type")
->setParameters(array(
'id' => $id,
'type' => $type,
))
->getResult();
return $users[0];
}
}
在我的應用程序,如果我有這樣的:
$user = $userRepo->getUser(1, 'home');
var_dump($user->getPhonenumbers()); // here phonenumbers collection is ok
$user = $userRepo->getUser(1, 'work');
var_dump($user->getPhonenumbers()); // Here phonenumbers collection is wrong.
// It's exactly the same as the previous one.
所以我的問題是:是否有可能使用fetch連接(使用不同的標準)並每次都得到適當的收集?
目前我最終使用Query :: HINT_REFRESH,我相信這會對性能產生一定的影響,但是我肯定會檢查你的解決方案。謝謝你的時間。 – ventsislaf