Skip to content

queryDsl

ryuhoseong edited this page Feb 26, 2021 · 2 revisions

Spring boot & QueryDsl

1. 셋팅


1.1 환경

  • Springboot 2.2.2 & Gradle 5.2

1.2 build.gradle

plugins {
    id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
}

dependencies {

    implementation 'com.querydsl:querydsl-jpa'
    implementation 'com.querydsl:querydsl-apt'
}

def querydslSrcDir = 'src/main/generated'

configurations {
    querydsl.extendsFrom compileClasspath
}

querydsl {
    library = "com.querydsl:querydsl-apt"
    jpa = true
    querydslSourcesDir = querydslSrcDir
}

sourceSets {
    main {
        java {
            srcDirs = ['src/main/java', querydslSrcDir]
        }
    }
}

compileQuerydsl{
    options.annotationProcessorPath = configurations.querydsl
}

gradle 6 이상 https://lteawoo.tistory.com/25

root build.gradle 에 추가 /* Querydsl 프로젝트 리스트 */ def querydslProjects = [ project(":"), project(":") ]

configure(querydslProjects) {

apply plugin: "io.spring.dependency-management"

dependencies {
    compile "com.querydsl:querydsl-jpa"
    compile "com.querydsl:querydsl-core"
    annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" // querydsl JPAAnnotationProcessor 사용 지정
    annotationProcessor "jakarta.persistence:jakarta.persistence-api:2.2.3"
    annotationProcessor "jakarta.annotation:jakarta.annotation-api:1.3.5"
}

// querydsl 적용
def generated = "$buildDir/main/generated"

/* 클래스 파일을 해당 폴더에 생성 하도록 경로 설정 */
sourceSets {
    main.java.srcDirs += [ generated ]
}

tasks.withType(JavaCompile) {
    options.annotationProcessorGeneratedSourcesDirectory = file(generated)
}

clean.doLast {
    file(generated).deleteDir()
}

}

module project 에 추가 implementation 'com.querydsl:querydsl-jpa'

Clone this wiki locally