首先,我会给与一些伪代码的例子,然后我会解释这是什么问题。 让我说,我有两个实体的用户和PhoneNumber。 它们的关系是一个一对多的。 在我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连接(使用不同的标准),每次得到适当的收集?