스프링 데이터 JPA가 제공하는 Querydsl 기능

slee2·2022년 4월 20일
0

(인프런)Querydsl

목록 보기
7/7

제약이 커서 실무에서는 사용하기 애매하다.

인터페이스 지원 - QuerydslPredicateExcutor

사용 방법은 이와 같다.

그럼 이와 같이 메서드 안에 파라미터로 Querydsl을 조건으로 넣을 수 있다.

한계점

  • 조인X(묵시적 조인만 가능)
  • 클라이언트가 Querydsl에 의존해야함.
  • 복잡한 실무환경에서는 사용X

Querydsl Web 지원

공식 URL: https://docs.spring.io/spring-data/jpa/docs/2.2.3.RELEASE/reference/html/#core.web.type-safe

한계점

  • 단순 조건만 가능
  • 조건을 커스텀하는 기능이 복잡하고 명시적이지 않음
  • 컨트롤러가 Querydsl에 의존
  • 복잡한 실무에서는 X

리포지토리 지원 - QuerydslRepositorySupport

장점

  • getQuerydsl().applyPagination() 스프링 데이터가 제공하는 페이징을 Querydsl로 편리하게 변환 가능(단, Sort는 오류 발생)
  • from()으로 시작 가능(최근에는 QueryFactory를 사용해서 select()로 시작하는 것이 더 명시적)
  • EntityManager 제공

한계

  • select()를 못함
  • Querydsl 3.x 버전을 대상으로 만듬
  • QueryFactory 제공X
  • 스프링 데이터 Sort 기능이 정상동작하지 않음

Querydsl 지원 클래스 직접 만들기

라이브러리를 활용하여 이전의 한계들을 극복하고 더 효율적이게 만드는 것이 목표

장점

  • 페이징 편리하게 변환
  • 페이징과 카운트 쿼리 분리
  • Sort 지원
  • select(), selectFrom()으로 시작
  • EntityManager, QueryFactory 제공

0개의 댓글