반응형
✅ 참고
Spring boot 3.X 버전에서의 QueryDSL 설정 방법과 Spring boot 2.X 버전에서의 QueryDSL 설정 방법은 다릅니다.
설정 방법이 다른 이유는 Spring boot 2.X 버전에서 Spring boot 3.X 버전으로 올라오면서 Java17로 변경되었습니다.
Java의 버전이 변경되며, 폴더 구조가 javax에서 jakarta로 변경되었기 때문입니다.
따라서 본인이 사용하고 있는 Spring boot 버전에 따라서 아래 코드를 참고해 주세요.
📄 Spring boot 3.x 이상 QueryDSL 설정
build.gradle
dependencies {
// queryDSL 설정
implementation "com.querydsl:querydsl-jpa:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
implementation "com.querydsl:querydsl-core"
implementation "com.querydsl:querydsl-collections"
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)
}
📄 Spring boot 2.x QueryDSL 설정
build.gradle
dependencies {
// queryDSL 설정
implementation "com.querydsl:querydsl-jpa"
implementation "com.querydsl:querydsl-core"
implementation "com.querydsl:querydsl-collections"
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" // 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)
}
반응형
'JAVA & Spring' 카테고리의 다른 글
[Java] 로또 번호 자동 생성기 (+코드) (0) | 2024.12.01 |
---|---|
[Java] 인수(Argument)란? 매개변수(Parameter)란? 아주 쉽게 정리(+코드) (0) | 2024.10.23 |
[Java] 객체(Object)란? 인스턴스(Instance)란? 아주 쉽게 정리(+코드) (0) | 2024.10.16 |
[Java] 클래스(Class)란? 아주 쉽게 그림으로 정리(+코드) (1) | 2024.10.16 |
[ Spring ] @Autowired, @Resource, @Inject 차이점 아주 쉽게 정리 (1) | 2024.10.16 |
댓글