본문 바로가기

basic/Java

Querydsl 적용하기 (java, kotlin)

Querydsl 적용하기

build.gradle

buildscript {
    ext {
        queryDslVersion = "5.0.0"
    }
}


plugins {
    id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
}

dependencies {
    implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
    implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
}

def querydslDir = "$buildDir/generated/querydsl"

querydsl {
    jpa = true
    querydslSourcesDir = querydslDir
}

sourceSets {
    main.java.srcDir querydslDir
}

configurations {
    querydsl.extendsFrom compileClasspath
}

compileQuerydsl {
    options.annotationProcessorPath = configurations.querydsl
}

Querydsl 버전을 명시 안해줬을때 Unable to load class 'com.mysema.codegen.model.Type'. 라는 에러가 발생했다.

 

kotlin

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

plugins {

    id("org.springframework.boot") version "3.0.1"

    id("io.spring.dependency-management") version "1.1.0"

    kotlin("jvm") version "1.7.22"

    kotlin("plugin.spring") version "1.7.22"

    kotlin("plugin.jpa") version "1.7.22"

    kotlin("kapt") version "1.7.21" //Querydsl

}

group = "exam"

version = "0.0.1-SNAPSHOT"

java.sourceCompatibility = JavaVersion.VERSION_17

repositories {

    mavenCentral()

}

dependencies {

    ...

    // Querydsl 추가

    implementation("com.querydsl:querydsl-jpa:5.0.0:jakarta")

    kapt("com.querydsl:querydsl-apt:${dependencyManagement.importedProperties["querydsl.version"]}:jakarta")

    kapt("jakarta.annotation:jakarta.annotation-api")

    kapt("jakarta.persistence:jakarta.persistence-api")

}

tasks.withType<KotlinCompile> {

    kotlinOptions {

        freeCompilerArgs = listOf("-Xjsr305=strict")

        jvmTarget = "17"

    }

}

tasks.withType<Test> {

    useJUnitPlatform()

}

'basic > Java' 카테고리의 다른 글

메소드 참조 표현식 ::  (0) 2022.05.02
JAVA 키워드 순서  (0) 2022.04.25
spring jpa ddl auto create  (0) 2022.02.14
SpringBoot에서 JSON으로 데이터 보내는 방법 3가지 REST통신하기  (0) 2021.09.30
DAO와 DTO  (0) 2021.09.21