queryDsl - ryuhoseong/code_tip GitHub Wiki

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'