개발놀이터

Querydsl 실무활용 본문

JPA/QueryDSL

Querydsl 실무활용

마늘냄새폴폴 2021. 10. 1. 21:23

*스프링 데이터 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