Spring Boot 3 - QueryDsl Setting (feat. build.gradle.kts)

공부는 혼자하는 거·2023년 9월 6일
1

Spring Tip

목록 보기
47/52

springBoot3 버전 업그레이드 되면서, 소소하게 변경해야 될 것들이 늘어났다.

plugins {
    id("org.springframework.boot") version "3.1.2"
    id("io.spring.dependency-management") version "1.1.2"
    kotlin("jvm") version "1.8.22"
    kotlin("plugin.spring") version "1.8.22"
    kotlin("plugin.jpa") version "1.8.22"
    kotlin("plugin.allopen") version "1.8.22"
    kotlin("kapt") version "1.8.22"
}


group = "com.example"
version = "0.0.1-SNAPSHOT"

java {
    sourceCompatibility = JavaVersion.VERSION_17
}

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

val querydslVersion = "5.0.0"


repositories {
    mavenCentral()
}

allOpen {
    // Spring Boot 3.0.0
    annotation("jakarta.persistence.Entity")
    annotation("jakarta.persistence.MappedSuperclass")
    annotation("jakarta.persistence.Embeddable")
}

dependencies {

....

    //jpa
    implementation("org.springframework.boot:spring-boot-starter-data-jpa")

    //querydsl
    implementation("com.querydsl:querydsl-jpa:$querydslVersion:jakarta")
    kapt("com.querydsl:querydsl-apt:${querydslVersion}:jakarta")

}


kapt {
    javacOptions {
        option("querydsl.entityAccessors", true)
    }
    arguments {
        arg("plugin", "com.querydsl.apt.jpa.JPAAnnotationProcessor")
    }
}


tasks.withType<KotlinCompile> {
    kotlinOptions {
        freeCompilerArgs += "-Xjsr305=strict"
        jvmTarget = "17"
    }
}

tasks.withType<Test> {
    useJUnitPlatform()
}

tasks.jar {
    enabled = false
}


compileKotlin을 하면,

큐 타입 클래스들이 해당 폴더 내에 잘 생성된 것을 확인할 수 있다.

@Configuration
@EnableJpaAuditing
class JPAConfig(
    //@Suppress("SpringJavaInjectionPointsAutowiringInspection")
    @PersistenceContext
    private val entityManager: EntityManager
) {


    @Bean
    fun jpaQueryFactory(): JPAQueryFactory {
        return JPAQueryFactory(entityManager)
    }


}

이제 jpaQueryFactory를 레파지토리 클래스에 주입받아서 사용하면 끝~

담번에 AWS SDK 2 를 사용하게 되면서 변경점들을 소개해볼까한다.

profile
시간대비효율

1개의 댓글

comment-user-thumbnail
2023년 9월 20일

시간 3시간 날린거 여기서 해결했네요. 감사합니다.

답글 달기