我如何在JPQL中完成以下内容?
SELECT item
FROM Item item
WHERE (
SELECT tag.name, tag.color
FROM Tag tag
WHERE tag.item = item
ORDER BY tag.name, tag.color
) = :tags
其中:tags是一组字符串(按名称和颜色排序),通过.getQuery().setParameter("tags", tags)
作为参数传入。
基本思想是假设我有一组项目,每个项目都有0 +字符串和颜色的关联标签,我希望找到任何具有特定名称/颜色标签集的项目。 / p>
我已尝试使用上面显示的内容作为查询,但我得到了模糊的错误The right expression is not a valid expression
。它似乎与子查询有问题。有任何想法吗?我不太关心解决方案与我上面的模板有多相似,只要它符合基本思想(并且可以动态指定目标标签集)。
答案 0 :(得分:0)
好吧,我想我已经找到了一种方法,或多或少。
然而,假设/要求给定项目X,任何标签名称在X上最多只能显示一次。可能可以修改方法以允许完全重复的标签,但我不需要那个,所以我还没试图弄明白。
(...)