쿼리를 자바 코드로 작성 할 수 있게 해주는 프레임워크

JPA 로 작성하기 힘든 쿼리를 작성하기 편리하게 도와줌

장점

  1. IDE 의 자동완성 기능 사용 가능
  2. 문자가 아닌 자바 코드로 작성 하므로 컴파일 시점에서 오류를 확인 가능
  3. 동적쿼리 작성에 편리 함
  4. 메서드화를 통해 재사용 가능
  5. 타입에 안전함

Q Class

Querydsl 은 프로젝트 내에 @Entity 어노테이션을 통해 선언해준 클래스를 탐색 후 Q Class 를 생성해 준다

엔티티로 등록된 클래스들 앞에 Q 라는 접두사가 붙은 형태로 자동 생성되고, 해당 클래스를 사용함으로써 쿼리를 Type-Safe 하게 작성 가능

Repository 구현

  1. ~Repository, ~RepositoryCustom, ~RepositoryImpl

    3개의 파일을 이용한 방식으로 가장 보편적으로 사용 하는 방식

    Untitled

    ~RepositoryCustom 이라는 이름으로 구현할 Querydsl 메서드의 시그니처를 정의 한다.

  2. 상속/구현 없는 Repository

    상속/구현이 필요없지만 Spring Data JPA 와 Querydsl 2가지를 전부 사용하려면 사용하려는 곳에서 2가지 Repository 를 주입해야 하는 단점이 있다.

  3. QuerydslRepositorySupport 를 상속한 방식