QueryDsl 설정 정말 까다롭다..!
고생 깨나 한 김에 정리.

1. 기본

1) spring-boot 3.0 이상

build.gradle

dependencies {
	// ...

	// Querydsl
	implementation 'com.querydsl:querydsl-jpa'
	annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
	annotationProcessor "jakarta.annotation:jakarta.annotation-api"
	annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}

clean {
	delete file('src/main/generated')
}

dependency를 추가하고 clean 시 QClass를 삭제해주는 코드를 작성한다.

2) 3.0 이하

dependency{
// Querydsl
	implementation 'com.querydsl:querydsl-jpa'
	annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
	annotationProcessor "jakarta.annotation:jakarta.annotation-api"
	annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}

def queryDslDir = 'src/main/generated'

clean {
	delete file(queryDslDir)
}

tasks.withType(JavaCompile){
	options.generatedSourceOutputDirectory = file(queryDslDir)
}

queryDslDir 변수를 사용해 QClass 디렉토리를 바꿔줄 수 있다.

이때, (build.gradle 상단의) plugins에 queryDsl을 추가하는 코드가 웹 상에 많이 돌아다니는데, 그러면 어째서인지 gradlew를 사용했을 때 빌드가 안된다...
(왜 그런건지 너무 궁금하다)


마지막으로...

QClass 디렉토리 gitignore 잊지말기!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN