Najpierw podam przykład z pseudo kodem, a następnie wyjaśnię, na czym polega problem. Pozwól mi powiedzieć, że mam dwie jednostki Użytkownik i numer telefonu. Ich relacja jest jeden do wielu. W moim UserRepository mogę mieć coś takiego:Przyłączenie Doctrine
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];
}
}
w mojej aplikacji, jeśli mam coś takiego:
$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.
więc moje pytanie brzmi: Czy jest możliwe aby użyć sprowadzić join (z różnymi kryteriami) i za każdym razem uzyskać właściwą kolekcję?
Na razie kończę używać Query :: HINT_REFRESH, co, jak sądzę, będzie miało pewien wpływ na wydajność, ale na pewno sprawdzę twoje rozwiązanie. Dziękuję za Twój czas. – ventsislaf