본문 바로가기
개발관련

Querydsl이란 무엇일까 ? (Gradle 설정 및 사용법)

by 수바니 2024. 8. 7.

Querydsl이란 정적 타입을 이용해서 SQL등의 쿼리를 생성해주는 오픈소스 프레임워크입니다.

(하이버네이트 쿼리 언어의 쿼리를 타입에 안전하게 생성 및 관리해주는 프레임워크)

문자가 아닌 코드로 쿼리를 작성함으로써, 컴파일 시점에 문법 오류를 쉽게 확인할 수 있습니다.

동적쿼리 작성이 편리하다는 장점이 있습니다.

 

JPA로는 복잡한 쿼리, 동적 쿼리를 구현하는 데 있어 한계가 있기때문에 Querydsl을 사용합니다.

따라서, 복잡한 동적 쿼리를 사용해야 할 때 QueryDSL을 사용하며, 단순할 경우에는 Spring Data JPA를 활용합니다.

 

 

Querydsl을 사용하기 위해서는, Gradle 설정 및 사용법 등을 익혀야합니다.

스트링부트 2.X와 3.0부터는 설정법이 다르니 꼭 확인해주세요!

저는 3버전 입니다.

 

1. build.gradle에 dependencies 추가

dependencies {
    implementation "com.querydsl:querydsl-jpa:${querydslVersion}:jakarta"
    annotationProcessor "com.querydsl:querydsl-apt:${querydslVersion}:jakarta"
    annotationProcessor "jakarta.annotation:jakarta.annotation-api"
    annotationProcessor "jakarta.persistence:jakarta.persistence-api"
  }

 

 

2. Querydsl 설정부

def querydslSrcDir = 'src/main/generated'

 

 

3. gradle clean시 QClass 디렉토리 삭제

clean {
    delete file(querydslSrcDir)
}

 

4. 버전을 명시적으로 설정해줍니다.

ext {
    set('springCloudVersion', "2023.0.3")
    set('querydslVersion', "5.0.0")  // QueryDSL 버전 명시적으로 설정
}

 

5. compile.java

(코드에 오류가 있으면 제대로 되지않으니 오류있는지 없는지 확인 할 것!)

오른쪽 탭 Gradle로 들어가줍니다.

Tasks > other > comile.java 클릭 -> Q객체가 만들어진 것을 확인할 수 있습니다.

 

6. Q파일 생성

 

7. querydsl config 파일을 만들어줍니다.

public class OrderApplicationQueryDslConfig {
    public OrderApplicationQueryDslConfig() {
    }

    @Bean
    JPAQueryFactory jpaQueryFactory(EntityManager em) {
        return new JPAQueryFactory(em);
    }
}

 

'개발관련' 카테고리의 다른 글

Docker 란 무엇일까 ?  (0) 2024.08.13
Spring Boot Redis Cache 사용  (0) 2024.08.08
인메모리 데이터 베이스(1)  (0) 2024.08.05
MSA(2) 로드밸런싱, 서킷브레이커, API GW, 보안구성  (0) 2024.08.02
MSA란 무엇일까 ?  (2) 2024.08.01