[SpringBoot] 스프링부트 3.x 에서 Querydsl 설정하기

반응형

코틀린을 스프링 부트 프로젝트를 사용할 때 QueryDSL을 사용할 떄 2.x 와 조금 다른 부분이 있어 정리합니다.

 

QueryDSL 플러그인 설정을 해줍니다.


plugins {
    id("org.springframework.boot") version "3.0.6"
    id("io.spring.dependency-management") version "1.1.0"
    kotlin("jvm") version "1.7.22"
    kotlin("plugin.spring") version "1.7.22"

    // querydsl
    kotlin("plugin.jpa") version "1.8.21"
    kotlin("plugin.allopen") version "1.8.21"
    kotlin("kapt") version "1.8.21"
    idea
}


 

 

 

 

 

 Kotlin은 기본적으로 클래스와 멤버 함수 등이 기본적으로 final로 선언되어 다른 클래스에서 상속하거나 오버라이드할 수 없습니다. 그러나 특정 프레임워크나 라이브러리에서 코드 생성 및 리플렉션을 위해 클래스나 함수를 열어두어야 할 때가 있습니다. 이때 allOpen 어노테이션을 사용하여 해당 클래스나 함수 등을 열어두면 됩니다.


allOpen {
    annotation("javax.persistence.Entity")
    annotation("javax.persistence.MappedSuperclass")
    annotation("javax.persistence.Embeddable")
}​


 

 

 

 

 

 

 다음과 같이 QueryDSL 디펜던시를 설정합니다.


dependencies {

	...
    
    // QueryDSL 설정
    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")
}


 

 

 

 

 

 Kotlin의 빌드 도구 중 하나인 kapt(Kotlin Annotation Processing Tool)를 사용하여 애노테이션 프로세싱을 설정하는 Gradle의 Kotlin DSL 코드입니다. 이 코드는 주로 프로젝트에서 애노테이션 프로세서를 사용하는 경우에 활용될 수 있습니다.


idea {
    module {
        val kaptMain = file("build/generated/source/kapt/main")
        sourceDirs.add(kaptMain)
        generatedSourceDirs.add(kaptMain)
    }
}


 

반응형

댓글

Designed by JB FACTORY