ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 6. 실무 활용 - 스프링 데이터 JPA와 Querydsl
    Spring-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`를 사용하기 보다는 파라미터를 받아서 직접 처리하는 것을 권장한다.

     

    댓글

Designed by Tistory.