我有:“图像” 1:许多“ imageToTag”许多:1“标签”
我想发出一个查询,该查询将返回 至少具有 标签[a,b,c]的所有图像。我不清楚如何在JPQL中对此建模。我可以动态地构建查询字符串,但这出于性能和安全性的考虑是不利的。有任何想法吗?
在 PSEUDO CODE中:
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'