我有一个简单的数据模型:一个Product
可以有很多Tag
对象。
Tag 模型有一个tag
字段和一个value
字段,都是字符串(值在这里并不重要)。
以下 DQL 查询为我提供了所有产品及其标签:
SELECT p, t FROM Product p LEFT JOIN p.tags t
但是,我如何只选择具有特定标签(例如“蓝色”)的产品?获取退回产品的所有标签很重要,所以我不能简单地做一个WHERE t.tag = 'blue'
.
作为一个附带问题;您是否有任何想法是否最好使用单独的 Tag 表来实现这一点,然后让 ProductTag 表将它们编织在一起(正确的多对多关系)?