-
6. 실무 활용 - 스프링 데이터 JPA와 QuerydslSpring-Boot/실전! Querydsl 2023. 3. 30. 15:00
1. 스프링 데이터 JPA 리포지토리로 변경
2. 사용자 정의 리포지토리
* 사용자 정의 리포지토리 사용법 *
1. 사용자 정의 인터페이스 작성
2. 사용자 정의 인터페이스 구현
3. 스프링 데이터 리포지토리에 사용자 정의 인터페이스 상속
* 쿼리가 복잡하거나 특화된 기능, 공용성없고, 특정 API에 종속시에는 class를 분리해서 만들어준다.
3. 스프링 데이터 페이징 활용1 - Querydsl 페이징 연동
- 스프링 데이터의 Page, Pageable을 활용
- 전체 카운트를 한번에 조회하는 단순한 방법
- 데이터 내용과 전체 카운트를 별도로 조회하는 방법
4. 스프링 데이터 페이징 활용2 - CountQuery 최적화
- 스프링 데이터 라이브러리가 제공
- count 쿼리가 생략 가능한 경우 생략해서 처리
ㆍ페이지 시작이면서 컨텐츠 사이즈가 페이지 사이즈보다 작을 때
ㆍ마지막 페이지일 때 (offset + 컨텐츠 사이즈를 더해서 전체 사이즈 구함)
5. 스프링 데이터 페이징 활용3 - 컨트롤러 개발
스프링 데이터 정렬(Sort)
- 스프링 데이터 JPA는 자신의 정렬(Sort)을 Querydsl의 정렬(OrderSpecifier)로 편리하게 변경하는 기능을 제공한다.
- 이 부분은 뒤에 스프링 데이터 JPA가 제공하는 Querydsl 기능에서 살펴보자
* 참고 : 정렬(`Sort`)은 조건이 조금만 복잡해져도 `Pageable`의 `Sort` 기능을 사용하기 어렵다.
- 루트 엔티티 범위를 넘어가는 동적 정렬 기능이 필요하면 스프링 데이터 페이징이 제공하는 `Sort`를 사용하기 보다는 파라미터를 받아서 직접 처리하는 것을 권장한다.
'Spring-Boot > 실전! Querydsl' 카테고리의 다른 글
7. 스프링 데이터 JPA가 제공하는 Querydsl 기능 (0) 2023.03.31 4. 실무 활용 - 순수 JPA와 Querydsl (0) 2023.03.20 3. 중급 문법 (0) 2023.03.17 2. 기본문법 (0) 2023.03.13 1. 프로젝트 환경설정 & 예제 도메인 모델 (0) 2023.03.08