개발놀이터
Querydsl 실무활용 본문
*스프링 데이터 JPA에서의 QueryDSL 사용
사용자 정의 리포지토리를 사용하면 된다. (Spring Data JPA 참고)
*QueryDSL 페이징 연동 + 스프링 데이터 JPA
1. 사용자 정의 리포지토리를 사용해서 구현체를 만든다.
2. 인자값으로 Pageable을 넘긴다.
3. queryFactory에서 offset메서드, limit메서드를 사용한다. // offset(pageable.getOffset()), limit(pageable.getPageSize())
4. fetchResults()메서드로 최종연산을 마무리 짓는다. // 이유 : 페이징 처리를 하려면 전체 데이터 개수를 알고 있어야 하므로
5. total사이즈를 뽑는다. fetchResults()의 결괏값으로 QueryResults타입이 나온다. 이 결과에 getResults()메서드를 하면 List타입의 결괏값이 나온다. 이 List타입의 결괏값에 getTotal()메서드를 사용하면 long타입의 결괏값이 나온다.
6. Page타입의 구현체인 PageImpl을 리턴한다. //return new PageImpl<>(content, pageable, total);
'JPA > QueryDSL' 카테고리의 다른 글
스프링 부트 5.0 Querydsl 설정 변경 (0) | 2023.05.30 |
---|---|
QueryDSL 중급문법 (0) | 2022.02.07 |
QueryDSL 기본문법 (0) | 2022.02.07 |
Querydsl 중급문법 (0) | 2021.10.01 |
Querydsl 기본문법 (0) | 2021.10.01 |