我有:“图像”1:许多“imageToTag”许多:1“标签”
我想发出一个查询,该查询将返回至少具有标签 [a, b, c] 的所有图像。我不清楚如何在 JPQL 中对此进行建模。我可以动态构建查询字符串,但这对性能和安全性不利。有任何想法吗?
在伪代码中:
SELECT * FROM IMAGES
INNER JOIN IMAGETAGS A
ON IMAGE.ID = A.IMAGEID AND A.TAGID = 'A'
INNER JOIN IMAGETAGS B
ON IMAGE.ID = B.IMAGEID AND B.TAGID = 'B'
INNER JOIN IMAGETAGS C
ON IMAGE.ID = C.IMAGEID AND C.TAGID = 'C'
只是猜测,但 JPQL 中的等价物是
Select img from Image img
JOIN img.tag ta
JOIN img.tag tb
JOIN img.tag tc
WHERE ta.description = 'A' and tb.description = 'B' and tc.description = 'C'
这是jpa查询语言怎么样
Select img from Image img where img.tag.description in ('A','B','C');