BananMoon / TIL

TIL : Today I Learned
0 stars 0 forks source link

QueryDsl 결과 조회 (기본 5가지 방법, 정렬, 페이징) #8

Open BananMoon opened 4 months ago

BananMoon commented 4 months ago

기본 결과 조회 방법 5가지

  1. fetch() : 리스트 조회. 데이터 없다면 empty list 반환.
  2. fetchOne() : 단건 조회.
    • 데이터 없으면 Null 반환
    • 2개 이상 조회되면 NonUniqueResultException 발생
  3. fetchFirst() : .limit().fetchOne() 여러 결과중 1개 pick.
  4. fetchResults() : total count 쿼리 추가 실행되며, 페이징 정보가 포함됨. (**성능 주의)
    • Deprecated 됨.
  5. fetchCount() : count 쿼리가 수행됨.

정렬

.orderBy() 내에 정렬하고자 하는 필드와 그 뒤에 .desc(), .asc()를 체이닝한다.

  queryFactory.selectFrom(member)
   .orderBy(member.username.desc().nullsLast())
   .offset(1)
   .limit(5)
   .fetchResults()   // total count 쿼리가 추가 실행됨.