2012-12-09 72 views
0

我想根據它們與之關聯的內容來檢索對象的集合。例如,按類別。這將是一個多對多的關係。Doctrine2:通過ManToMany關聯進行篩選

我已經能夠實現與MEMBER OF,但我需要傳入一個ID數組,反對一次一個。我看到有一個「IN()」,但它似乎需要一個子查詢,我想避免它。

會員例子: SELECT o FROM Entity\Object1 o WHERE 'CATEGORY_CODE' MEMBER OF o.categories

(編輯) 這是我想做些什麼,但也許我誤解實體DQL如何工作的: SELECT o FROM Entity\Object1 o WHERE o.categories.Id IN (id, id, id)

回答

1
SELECT o FROM Entity\Object1 o JOIN o.categories c WHERE c.id in ('id', 'id', 'id'); 

如果這是不是你想要的,你必須編輯你的問題更具體。

+0

謝謝。沒有連接可以做到嗎? (更新我的問題與所需的查詢) – Shroder

+0

不是沒有子查詢,你說你不想在原來的問題。你爲什麼不想加入? – Lighthart

+0

它需要多一點的工作來通過我正在構建的API生成DQL語句。我需要檢測屬性是否實際上是一個連接表,與屬性相反並從那裏生成連接。 另外,我不確定調用JOIN對已經有該關係映射的對象會有什麼影響。它是否成爲部分對象?它是否有性能問題?這些問題超出了我原來的問題範圍,所以我可以根據需要重新發布。 – Shroder