본문 바로가기

개발일기/QueryDsl

QueryDsl페이징 처리

728x90
반응형

QueryDsl에서의 페이징 처리에 대한 2가지 방법을 사용 해봤다.

 

예제1)

@Test
public void paging1(){
QMember qmember = QMember.member;

List<Member> result = queryFactory
.selectFrom(qmember)
.orderBy(qmember.username.desc())
.offset(1)
.limit(2)
.fetch();
}

- 첫번째 방법은 offset 과 limit 을 이용하여 해당 테이블에서 데이트 리스트를 조회 하는 예제이다.

 

예제2)

@Test
public void paging2(){
QMember qmember = QMember.member;

QueryResults<Member> memberQueryResults = queryFactory
.selectFrom(qmember)
.orderBy(qmember.username.desc())
.offset(0)
.limit(2)
.fetchResults();

Long total = memberQueryResults.getTotal();
Long offset = memberQueryResults.getOffset();
Long limit = memberQueryResults.getLimit();
List<Member> result = memberQueryResults.getResults();
}

- 예제 2번은 예제1번과 동일하지만 .fetch()가 아닌 .fetchResults(); 를 이용하여 페이징 정보를 함께 조회한 예제이다.

- .fetchResults() 를 이용하여 값들의 total, 그리고 offset , limit 정보를 같이 조회할 수 있다.

- 실제 값조회는 .getResults()를 이용하여 추출한다.

728x90
반응형

'개발일기 > QueryDsl' 카테고리의 다른 글