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
'QueryDSL' 카테고리의 다른 글
[JPA] Querydsl 에서 Fetch Join을 적용시키는 방법 (0) | 2022.10.15 |
---|---|
queryDsl로 like 문 구현 (0) | 2022.09.19 |
페이징 (feat.QueryDSL) (0) | 2022.06.25 |
동적 쿼리 - BooleanBuilder 사용 (0) | 2022.06.25 |
(QueryDSL) 동적쿼리(feat. BooleanBuilder) (0) | 2022.06.18 |