私は単純なデータモデルを持っています:aProduct
は多くのTag
オブジェクトを持つことができます。
タグモデルには、tag
フィールドとvalue
フィールドがあり、両方とも文字列です(ここでは値は重要ではありません)。
次のDQLクエリは、すべての製品とそのタグを取得します。
SELECT p, t FROM Product p LEFT JOIN p.tags t
ただし、特定のタグ(「青」など)を持つ製品のみを選択するにはどうすればよいですか?返品された商品のすべてのタグを取得することが重要であるため、単純にを行うことはできませんWHERE t.tag = 'blue'
。
副次的な質問として; 別のTagテーブルを使用してこれを実装し、ProductTagテーブルでそれらを結び付ける(適切な多対多の関係)方がよいかどうかについて何か考えがありますか?