#5. Spring_ DATA JPA Querydsl

박주현·2023년 10월 13일
0
post-thumbnail

최근부터 진행하고있는 JPA를 활용한 쇼핑몰 프로젝트에서 Querydsl을 사용하고 있다.
사용하기 위해 초기에 설정하는 부분이 오래걸리고 오류도 많이 나서 정리해보려한다.

1. Querydsl 이란?

먼저, Querydsl이 뭔지부터 알아보자.

Querydsl 이란, 해당 프로젝트에서 SQL , JPQL를 코드로 작성할 수 있도록 해주는 빌더 오픈소스 프레임워크 이다.
Querydsl은 JPA 뿐만 아니라, SQL, MongoDB 등 다양한 언어에서 서비스를 제공하고 있다.

2. QueryDSL JPA

  1. 빌더 API로 SQL과 JPQL을 코드로 작성할 수 있도록 해줌.
  2. Entity 클래스와 매핑되는 QClass 객체를 사용해서 쿼리를 실행한다.
  • QClass 란?
    : 컴파일 단계에서 엔터티 기반으로 생성된 것으로 JPAAnnotationProcessor 가 작동해서 @Entity 를 찾아 QClass를 생성.
    결국에 QClass 의 형태는 Entity와 같고 QueryDSL에서 쿼리 작성시 QClass를 사용하여 쿼리를 작성한다.

3. QueryDSL 사용이유

  1. 오타 빈도수 적음
    : 쿼리를 문자열로 작성하는게 아닌 코드로 작성하기에 오타발생이 적어진다.

  2. 컴파일 단계에서 오류를 빠르게 찾아낼 수 있다.

4. QueryDSL 초기 설정

환경 : Intellij ultimate 와 Gradle
언어 : Java17

build.gradle 코드

: 주석을 통해서 해당 코드의 사용이유를 작성해놨다.

build.gradle 작성 이후 refresh 해주면 오른쪽 CompileClasspath 와 runtimeClasspath에 queryDSL에 관련된 내용이 보일 것이다.
마지막으로 Tasks -> build -> build를 눌러주면 generated 폴더에 QClass 가 생성된 것을 볼 수 있다.

5. 주의

: QueryDSL의 QClass는 git 에 올리지 않아야하기에 .gitignore 파일에 넣어주는 것을 추천한다.

profile
빌드업 막 시작하는 개발자

0개의 댓글