Я хочу получить некоторые сущности с загруженной частью их ассоциаций.
Это самореференциальная иерархическая связь с такой таблицей:
CREATE TABLE entities (
id serial PRIMARY KEY,
parent_id integer REFERENCES entities,
attribute_id integer REFERENCES attributes,
[...]
);
Теперь яхочу предварительно загрузить сущность с некоторыми из ее дочерних элементов, сопоставляя предложение WHERE, например, entity.attribute_id =?.
У меня это в простом SQL, например:Я не знаю, как это сделать в Doctrine.
Конечно, я пытался:
$qb = $em->createQueryBuilder();
$qb->select('p_ent', 'c_ent')
->from('Entities', 'p_ent')
->innerJoin('p_ent.children', 'c_ent')
->where('c_ent.attribute = ?1')
->setParameter(1, $attr);
Но это не работает - отношения всегда загружаются полностью со всеми дочерними сущностями.