最初にいくつかの擬似コードを使用して例を示し、次に何が問題なのかを説明します。UserとPhonenumberの2つのエンティティがあるとしましょう。それらの関係は1対多です。私の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.
だから私の質問は:フェッチ結合を使用して(異なる基準で)、毎回適切なコレクションを取得することは可能ですか?