我有一個與ClassB的ManyToMany關係的ClassA,有沒有辦法通過ClassB數組選擇ClassA實體?目前我有: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實體的數組。該查詢的問題是,如果我查看具有ClassB實體1,2和3的ClassA實體,它將返回任何具有這3個ClassB實體之一的ClassA實體以及具有其中三個ClassB實體的實體我需要選擇那些擁有數組包含的所有實體的人。
工作就像一個魅力。謝謝! – ikleiman
我遇到了另一個問題,如果我正在尋找具有ClassB 1,2,3的ClassA,並且該查詢返回任何具有這些ClassB的ClassA,儘管也有其他ClassB(即1,2,3,4; 1,2,3,5)等)。我在找的東西類似於「WHERE b =:classBEntities」有什麼想法? – ikleiman
好吧,你沒有在這個問題上說這個額外的要求:)所以基本上你想'WHERE b =:classBEntites'作爲一個完全匹配...意義COUNT(b)必須匹配集合中的classBEntites的數量? – nifr