반응형
이전 글에서 소개했듯이, 저는 이번 제 1인 프로젝트에 QueryDSL을 적용하기로 했습니다.
Spring 2.6 이상 버전이냐 Spring 3.X 버전이냐에 따라 세팅에 차이가 조금씩 있는 것 같습니다.
저도 그랬지만 아마 많은 분들이 QueryDSL 초반 세팅에서부터 좀 힘들어 하셨을 것 같아요.
이 글에서는 Spring 3.X 버전을 기준으로 세팅 방법을 기록하겠습니다.
// 중략
plugins {
kotlin("kapt") version "1.9.21"
}
// 중략
val queryDslVersion: String by extra
// 중략
dependencies {
implementation("com.querydsl:querydsl-jpa:5.0.0:jakarta")
kapt("com.querydsl:querydsl-apt:5.0.0:jakarta")
kapt("jakarta.annotation:jakarta.annotation-api")
kapt("jakarta.persistence:jakarta.persistence-api")
}
// 중략
// Querydsl 설정부 추가 - start
val generated = file("src/main/generated")
// querydsl QClass 파일 생성 위치를 지정
tasks.withType<JavaCompile> {
options.generatedSourceOutputDirectory.set(generated)
}
// kotlin source set 에 querydsl QClass 위치 추가
sourceSets {
main {
kotlin.srcDirs += generated
}
}
// gradle clean 시에 QClass 디렉토리 삭제
tasks.named("clean") {
doLast {
generated.deleteRecursively()
}
}
// Querydsl 설정부 추가 - end
설정을 완료해준 뒤에 Sync를 해주시고,
QueryDslConfig 설정 파일을 만들어줘서, JPAQueryFactory를 전역적으로 사용할 수 있게 합니다.
@Configuration
class QueryDslConfig(
val entityManager: EntityManager
) {
@Bean
fun queryFactory(): JPAQueryFactory {
return JPAQueryFactory(entityManager)
}
}
작성이 된 뒤에 clean을 진행해줍니다.
./gradlew clean compileKotlin
정상적으로 세팅이 되었다면, Qclass들이 생성되었을 겁니다!
참고
https://turtle-codingstudy.tistory.com/54
https://mingg123.tistory.com/273
https://velog.io/@hana0627/Kotlin-SpringBoot3-QueryDsl-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
반응형
'[서버] > [SpringBoot Kotlin]' 카테고리의 다른 글
게시글 읽어올 때, 좋아요 수랑 댓글 수를 어떻게 처리할 것인가? (0) | 2024.04.10 |
---|---|
[Kotlin + Spring] QueryDSL 사용해보기 (0) | 2024.04.08 |
[Kotlin + Spring] 내가 QueryDSL을 도입하게 된 이유 (0) | 2024.04.08 |
[Kotlin + Spring] 2. Spring data JPA 활용하기 (feat. cherry pick) (0) | 2024.03.27 |
[Kotlin + Spring] 1. 새 프로젝트 시작 (NginX 연동까지) (0) | 2024.03.27 |