티스토리 뷰

여러 테이블이 하나의 파일첨부 테이블을 사용하다보니 쿼리를 만들 때에 번거로움이 꽤 있다.

 

이 중에 썸네일로만 사용되는 쿼리를 만들어보려 했다.

 

변경 전 JPQL

@Query("SELECT w FROM Work w JOIN FETCH w.files f " +
            "WHERE w.id = :id ORDER BY f.cd = 'thumb_nail' desc, f.ord ASC, f.tmplType ASC, f.picOrd ASC")

 

직관적으로 DB SQL로 만들어보려니 잘 안됐다. 메뉴얼을 봐도 딱히 답이 없는 상황이었다. 여러 방식을 사용했고 만든 결과

 

@Query("SELECT w FROM Work w JOIN FETCH w.files f " +
        "WHERE w.id = :id ORDER BY CASE WHEN f.cd = 'thumb_nail' THEN 0 ELSE 1 END, " +
        "f.ord ASC, f.tmplType ASC, f.picOrd ASC")

 

Order By 절 안에 CASE WHEN을 사용해서 상위로 올리는 방식으로 했다. 아직 나도 이해는 잘 가지 않는다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함