小编典典

在JPA中获取查询交集?

sql

我有:“图像” 1:许多“ imageToTag”许多:1“标签”

我想发出一个查询,该查询将返回 至少具有
标签[a,b,c]的所有图像。我不清楚如何在JPQL中对此建模。我可以动态地构建查询字符串,但这出于性能和安全性的考虑是不利的。有任何想法吗?


阅读 249

收藏
2021-04-22

共1个答案

小编典典

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'
2021-04-22