Prima darò un esempio con qualche pseudo codice e poi spiegherò qual è il problema. Lasciatemi dire che ho due entità User e Phonenumber. La loro relazione è uno-a-molti. Nel mio UserRepository posso avere qualcosa di simile:Doctrine fetch join
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];
}
}
Nella mia app, se ho qualcosa di simile:
$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.
Così le mie domande è: E 'possibile utilizzare prendere unirsi (con criteri differenti) e ottenere ogni volta la collezione corretta?
Per il momento finisco con l'uso di Query :: HINT_REFRESH, che credo avrà un impatto sulle prestazioni, ma sicuramente controllerò la soluzione. Grazie per il tuo tempo. – ventsislaf