본문 바로가기
스프링 부트/코틀린

[코틀린] QueryDSL 초기 설정법

by illlilillil 2022. 3. 11.

build.gradle 설정은 이렇게 해주세요.

주석에 기본 설정이랑 추가 설정 QueryDsl정도만 보시면 될 거 같습니다. 

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
   id("org.springframework.boot") version "2.5.10"
   id("io.spring.dependency-management") version "1.0.11.RELEASE"
   kotlin("jvm") version "1.5.32"
   kotlin("plugin.spring") version "1.5.32"
   //기본 설정 추가
   kotlin("plugin.allopen") version "1.5.32"
   kotlin("kapt") version "1.5.32"
   kotlin("plugin.noarg") version "1.5.32"
}
group = "com.example"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_1_8
val qeurydslVersion = "4.4.0" // <= 추가 설정

configurations {
   compileOnly {
      extendsFrom(configurations.annotationProcessor.get())
   }
}

repositories {
   mavenCentral()
}

dependencies {
   implementation("org.springframework.boot:spring-boot-starter-web")
   //코틀린 관련
   implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
   implementation("org.jetbrains.kotlin:kotlin-reflect")
   implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
   //직렬화 플러그인
   implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.0")

   // QueryDSL
   implementation("com.querydsl:querydsl-jpa:$qeurydslVersion")
   kapt("com.querydsl:querydsl-apt:$qeurydslVersion:jpa")
   kapt("org.springframework.boot:spring-boot-configuration-processor")

   implementation("org.springframework.boot:spring-boot-starter-data-jpa")
   compileOnly("org.projectlombok:lombok")
   runtimeOnly("org.postgresql:postgresql")
   annotationProcessor("org.projectlombok:lombok")
   testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<KotlinCompile> {
   kotlinOptions {
      freeCompilerArgs = listOf("-Xjsr305=strict")
      jvmTarget = "1.8"
   }
}

tasks.withType<Test> {
   useJUnitPlatform()
}

코끼리 한 번 눌러준다.

 

QClass 생성


차례로 한 번씩 누르면 QClass가 생성된다.

엔티티를 추가하거나 삭제됐을때에도 아래 루틴을 한 번씩 추가로 실행해야 한다.

Gradle - build- clean

Gradle - other - compilieKotlin

 

QClass 확인


kapt 플러그인을 사용했기 때문에 kapt 폴더 안에 생성된 것을 확인할 수 있다.

 

댓글