반응형
Kotlin과 JPA그리고 QueryDSL을 사용하면서 자주 설정에 대한 내용을 찾아보곤 한다. 그리고 Kotlin 설정은 Java와는 다르기 때문에 간단하게나마 기록해둔다.
[2023.03.18] 스프링부트 3.X QueryDSL 설정 추가
프로젝트 버전
- SpringBoot 2.6.8
- Gradle 7.4.1
- JDK 11
- Kotlin 1.7
- Spring Data JPA 2.6.8
Gradle 설정
plugins { ... kotlin("kapt") version "1.6.21" } dependencies { ... // querydsl implementation("com.querydsl:querydsl-jpa") //querydsl kapt("com.querydsl:querydsl-apt:${dependencyManagement.importedProperties["querydsl.version"]}:jpa") //querydsl }
이렇게 설정한 상태에서 Gradle Refresh를 하게 되면 QueryDSL을 사용할 수 있게 된다.
중간에 dependencyManagement의 경우 다음을 참고하면 된다
Gradle - dependency-management Plugin
Gradle - dependency-management Plugin
종속성관리를 위한 Gradle 플러그인이 있습니다. 해당 플러그인을 사용하면 버전을 명시하지 않아도 Management에서 관리되고 있는 버전으로 종속성관리를 해줍니다. Spring Boot starter 버전의 내용은 o
browngoo.tistory.com
@Entity를 작성하고 Build를 해보면 Q클래스가 작성되어있는것을 볼 수 있다

혹시 나중에 참고가 될까 build.gradle.kts를 전부 올려둔다
더보기
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.springframework.boot") version "2.6.8" id("io.spring.dependency-management") version "1.0.11.RELEASE" kotlin("jvm") version "1.6.21" kotlin("plugin.spring") version "1.6.21" kotlin("plugin.jpa") version "1.6.21" kotlin("kapt") version "1.6.21" } group = "com.brown" version = "0.0.1-SNAPSHOT" java.sourceCompatibility = JavaVersion.VERSION_11 repositories { mavenCentral() } allOpen{ annotation("javax.persistence.Entity") annotation("javax.persistence.Embeddable") annotation("javax.persistence.MappedSuperclass") } dependencies { implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.springframework.boot:spring-boot-starter-validation") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") runtimeOnly("com.h2database:h2") testImplementation("org.springframework.boot:spring-boot-starter-test") // querydsl implementation("com.querydsl:querydsl-jpa") kapt("com.querydsl:querydsl-apt:${dependencyManagement.importedProperties["querydsl.version"]}:jpa") } tasks.withType<KotlinCompile> { kotlinOptions { freeCompilerArgs = listOf("-Xjsr305=strict") jvmTarget = "11" } } tasks.withType<Test> { useJUnitPlatform() }
Spring Boot 3.X 에서 QueryDSL 설정
스프링 부트 3.X에서는 JPA관련 어노테이션이 javax에서 jakarta로 변경되었다. 그래서 QueryDSL 관련 설정을 다음과 같이 설정해야한다.
plugins { ... kotlin("kapt") version "1.7.22" } dependencies { ... implementation("com.querydsl:querydsl-jpa:5.0.0:jakarta") kapt("com.querydsl:querydsl-apt:5.0.0:jakarta") }
반응형
'개발 > Kotlin' 카테고리의 다른 글
TransactionalEventListener 그리고 EventListener (0) | 2022.07.12 |
---|---|
Gradle - dependency-management Plugin (0) | 2022.06.19 |
Kotlin Basic - 함수와 변수 (0) | 2022.06.18 |
Spring Bean Validation - Test Code (0) | 2022.06.14 |
Spring Bean Validation - Custom Annotation (0) | 2022.04.17 |