본문 바로가기

Development/Web & Server

[Hibernate] HQL문 몇가지 정리

1. 특정 Column의 가장 높은 값을 가져오는 구문

%s.score in (SELECT MAX(%s2.score) FROM %s %s2 WHERE %s2.userNo = :userNo)


2. 특정 Column의 내림차순으로 정리

WHERE interest.interestNo = ANY(SELECT s.interestNo FROM InterestUserScore s WHERE s.userNo = :userNo ORDER BY s.score DESC)


3. Left Join

stringBuffer.append("SELECT DISTINCT d FROM Drama d "

   + "LEFT JOIN d.genreList genre "

   + "LEFT JOIN d.actorList actor "

   + "LEFT JOIN d.writerList writer "

   + "LEFT JOIN d.directorList director "

   + "WHERE ");


4. 리스트 검색

d.%s.interestNo IN (:%sNoList)

query.setParameterList(String.format("%sNoList", key), noList);