문제

나는 "이미지"1 : 많은 "imagetotag"많은 : 1 "tag"

가지고있는 모든 이미지를 반환 할 쿼리를 발행하고 싶습니다. 적어도 태그 [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');
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top