Springboot Querydsl 기본 세팅

Chooooo·2023년 9월 12일
0

Querydsl

목록 보기
2/3
post-thumbnail

😎 Springboot Querydsl 세팅을 위한 build.gradle 수정

😊 Querydsl 버전 plugins 위에 추가

buildscript {
    ext {
        queryDslVersion = "5.0.0"
    }
}

😊 Querydsl 플러그인 plugins안에 추가

plugins {
    id 'org.springframework.boot' version '2.6.4'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
    // querydsl 플러그인 추가
    id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}

😊 dependencies에 querydsl 관련 디펜던시 추가

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-cache'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    runtimeOnly 'com.h2database:h2'
    annotationProcessor 'org.projectlombok:lombok'
    implementation 'mysql:mysql-connector-java'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    
    // querydsl 디펜던시 추가
    implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
    implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
}

😊 querydsl 추가 설정

가장 밑에 적어준다.

// querydsl 사용할 경로 지정합니다. 현재 지정한 부분은 .gitignore에 포함되므로 git에 올라가지 않습니다. 
def querydslDir = "$buildDir/generated/'querydsl'"
 
// JPA 사용여부 및 사용 경로 설정
querydsl {
    jpa = true
    querydslSourcesDir = querydslDir
}
 
// build시 사용할 sourceSet 추가 설정
sourceSets {
    main.java.srcDir querydslDir
}
 
 
// querydsl 컴파일 시 사용할 옵션 설정
compileQuerydsl {
    options.annotationProcessorPath = configurations.querydsl
}
 
// querydsl이 compileClassPath를 상속하도록 설정
configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
    querydsl.extendsFrom compileClasspath
}

😊 Build

위에서 Querydsl을 사용하기 위한 세팅은 모두 끝났습니다. 우측 gradle 탭에서 other -> compileQuerydsl을 누르시거나 애플리케이션을 실행시키면, Build가 됩니다. 위에서 지정한 querydslDirQ타입이란 것이 생깁니다.


😊 QMember의 모습

  • 이렇게 됐다면 제대로 된 설정을 마친 것이다.
  • 그리고 엔티티를 돌릴 때마다 Q타입 생기도록 compileQuerydsl 실행 !
profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글