У меня есть ClassA с отношением ManyToMany к ClassB, есть ли способ выбора объектов ClassA массивом ClassB? В настоящее время у меня есть:Doctrine 2 DQL - выберите точный массив ManyToMany
$query = $em->createQuery("
SELECT a FROM Bundle:ClassA a
JOIN a.classB b
WHERE b IN (:classBEntities)
")
->setParameter('classBEntities', $classBEntities);
Будучи $ classBEntities массивом объектов ClassB. Проблема с этим запросом заключается в том, что если я ищу объект ClassA с объектами 1, 2 и 3 класса ClassB, он возвращает любой объект ClassA, который имеет один из этих трех объектов ClassB, а также тот, который имеет три из них, но Мне нужно выбрать только те, у которых есть все сущности, которые содержит массив.
работал как шарм. Благодаря! – ikleiman
Я столкнулся с другой проблемой, если я ищу ClassA с ClassBs 1,2,3 с этим запросом, он возвращает любой ClassA, у которого есть эти ClassB, несмотря на то, что у них есть и другие (т.е. 1,2,3,4; 1,2,3,5) и т. Д.). То, что я ищу, похоже на «WHERE b =: classBEntities». Любые мысли? – ikleiman
хорошо, что вы не сказали что-то об этом дополнительном требовании в вопросе :), так что в основном вы хотите, чтобы 'WHERE b =: classBEntites 'как точное совпадение ... значение COUNT (b) также должно соответствовать количеству классовBEntites в коллекции ? – nifr