본문 바로가기

Java/Spring Jpa

QueryDSL

기능

  • QueryDSL의 **Predicate** 인터페이스로 조건문을 여러개를 구성하여 따로 관리할 수 있다.
    • findOne(Predicate), findAll(Predicate) 주로 이 2개 메소드가 사용된다.
      • findOne = Optional<T> 리턴
      • findAll = List<T> | Page<T> | Iterable<T> | Slice<T> 리턴
  • Type Safe 기능
    • 조건문 구성시에 사용되는 객체, 필드 조건이 실제 타입과 일치한지 체크해준다.

장점

  1. 문자가 아닌 코드로 쿼리를 작성함으로써, 컴파일 시점에 문법 오류를 쉽게 확인할 수 있다.
  2. 자동 완성 등 IDE의 도움을 받을 수 있다.
  3. 동적인 쿼리 작성이 편리하다.
  4. 쿼리 작성 시 제약 조건 등을 메서드 추출을 통해 재사용할 수 있다.

원리

  • QueryDSL 의존성을 추가하면 SpringData에 의해 **QueryDslPredicateExecutor** 인터페이스가 추가된다.
    • **QueryDslPredicateExecutor 는** Repository가 QueryDsl 을 실행할 수 있는 인터페이스를 제공하는 역할을 한다.

'Java > Spring Jpa' 카테고리의 다른 글

정렬  (0) 2023.02.02
원하는 값만 쿼리로 가져오기  (0) 2023.02.02
delete() 메서드 최적화  (0) 2023.02.02
Repository 기능 제한  (0) 2023.02.02
Cascade와 orphanRemoval  (0) 2023.02.02