QueryDSL
QueryDSL 페이징 방법
쿠카이든
2022. 7. 16. 18:56
728x90
QueryDSL 에서의 페이징 -> offset과 limit를 통해서 페이징을 할 수 있다.
- LIMIT 숫자 : 출력할 행의 수
- OFFSET 숫자 : 몇번째 row부터 출력할 지. (1번째 row면 0)
조회 건수 제한
@Test
public void paging1() {
List<Member> result = queryFactory
.selectFrom(member)
.orderBy(member.username.desc())
.offset(1) //offset은 0부터 시작(zero index), 현재 코드에서는 1번부터 데이터를 가져오도록 하므로 맨 처음 데이터는 생략됨
.limit(2) //최대 2건 조회
.fetch();
assertThat(result.size()).isEqualTo(2);
}
전체 데이터 수가 필요하면? - fetchResults 사용
@Test
public void paging2() {
QueryResults<Member> queryResults = queryFactory
.selectFrom(member)
.orderBy(member.username.desc())
.offset(1)
.limit(2)
.fetchResults();
assertThat(queryResults.getTotal()).isEqualTo(4);
assertThat(queryResults.getLimit()).isEqualTo(2);
assertThat(queryResults.getOffset()).isEqualTo(1);
assertThat(queryResults.getResults().size()).isEqualTo(2); //getResult -> 컨텐츠 가져오는 메서드
}
출처 : 김영한의 '실전! Querydsl' 강의 중 메모(https://www.inflearn.com/course/Querydsl-%EC%8B%A4%EC%A0%84/dashboard)
728x90