Spring boot 3.0.x 으로 가면서 Query DSL 설정도  변경되었다.
https://stackoverflow.com/questions/74756871/spring-boot-3-with-querydsl

 

 

다른 블로그에 많이 올라와 있는 것처럼 해도 안되는 분은 아래처럼 설정해보세요.

// queryDSL 설정
    implementation "com.querydsl:querydsl-jpa:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
    annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" // querydsl JPAAnnotationProcessor 사용 지정
    annotationProcessor "jakarta.annotation:jakarta.annotation-api" // java.lang.NoClassDefFoundError (javax.annotation.Generated) 대응 코드
    annotationProcessor "jakarta.persistence:jakarta.persistence-api" // java.lang.NoClassDefFoundError (javax.annotation.Entity) 대응 코드

 

해당 버전이 어떤 버전으로 설치되는지 직접 보고싶을 때는

gradle 문법인 print로 아래처럼 찍어볼 수도 있다.

// 현재는 5.0.0
print(dependencyManagement.importedProperties['querydsl.version']);

 

이제 다시 gradle build 하면, 정상적으로 빌드되는 것을 확인할 수 있다.

 

intelliJ IDEA 를 사용하는 경우 최종 queryDSL 설정은 아래와 같다.
build.gradle

 

dependencies {
    //각종 dependencies.....

    // queryDSL 설정
    implementation "com.querydsl:querydsl-jpa:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
    annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" // querydsl JPAAnnotationProcessor 사용 지정
    annotationProcessor "jakarta.annotation:jakarta.annotation-api" // java.lang.NoClassDefFoundError (javax.annotation.Generated) 대응 코드
    annotationProcessor "jakarta.persistence:jakarta.persistence-api" // java.lang.NoClassDefFoundError (javax.annotation.Entity) 대응 코드
}

// Querydsl 설정부
def generated = 'src/main/generated'

// querydsl QClass 파일 생성 위치를 지정
tasks.withType(JavaCompile) {
    options.getGeneratedSourceOutputDirectory().set(file(generated))
}

// java source set 에 querydsl QClass 위치 추가
sourceSets {
    main.java.srcDirs += [ generated ]
}

// gradle clean 시에 QClass 디렉토리 삭제
clean {
    delete file(generated)
}

 

혹시라도 저처럼 삽질하신 분께

도움이 되셨다면 좋겠네요 :) 또 놀러오세요.

+ Recent posts