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)
}
혹시라도 저처럼 삽질하신 분께
도움이 되셨다면 좋겠네요 :) 또 놀러오세요.
'Backend > Spring' 카테고리의 다른 글
Spring Security란? Security Filter 종류 간단히 알아보자 (0) | 2022.11.24 |
---|---|
[오류해결-swagger] Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException (5) | 2022.05.18 |
[Spring] Autowired option 처리 (0) | 2021.07.13 |
[Spring] 다양한 의존관계 주입 중 Best 방법은? (0) | 2021.07.13 |
web.servlet.PageNotFound : No mapping 어쩌구 (0) | 2021.06.29 |