QueryDsl 기본 세팅
카테고리: Spring
태그: QueryDsl
QueryDsl
QueryDsl은 기존 dependency를 추가하는 경우와 다르게 설정파일들을 수정해줘야한다.
수정하지않으면 최신 Spring5에서 아래와 같은 에러가 난다.
Unable to load class ‘com.mysema.codegen.model.Type’ compileQuerydsl
- plugin 추가
- 라이브러리 추가
- 각종 dir, config
**************************************************************
buildscript {
ext {
queryDslVersion = "5.0.0"
}
}
***************************************************************
plugins {
id 'org.springframework.boot' version '2.6.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
1. plugin 추가
**************************************************************
id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
**************************************************************
id 'java'
}
group = 'study '
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.7'
compileOnly 'org.projectlombok:lombok'
2.라이브러리 추가
**************************************************************
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
**************************************************************
runtimeOnly 'com.h2database:h2'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
3. 각종 dir, config
**************************************************************
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
compileQuerydsl{
options.annotationProcessorPath = configurations.querydsl
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
querydsl.extendsFrom compileClasspath
}
**************************************************************
3번에 설정으로 해당 경로에 QueryDsl 전용 Entity를 생성해주기위해 compileQuerydsl을 실행한다.
querydsl에 QEntity가 생성된것을 확인할 수 있다.
댓글남기기