티스토리 뷰
반응형
Spring Boot, Gradle 환경에 Querydsl 설정 방법
Spring Boot, Querydsl 최신 버전을 사용하면서 QueryDSL 적용 방법에 변동이 생긴 듯하다.
참고로, 현재 프로젝트는 spring-boot-2.6.3
, gradle-7.3.2
버전을 사용 중이다.
.
기존 방식대로 적용을 했을 때, 아래와 같은 에러가 발생하게 되었다.
Unable to load class 'com.mysema.codegen.model.Type'.
.
그럼.. 이제 어떤 방법으로 QueryDSL 설정을 해주어야 할지 확인해 보자!
Gradle
먼저 Gradle 설정 방법이다.
// 1. queryDsl version 정보 추가
buildscript {
ext {
queryDslVersion = "5.0.0"
}
}
plugins {
id 'org.springframework.boot' version '2.6.3'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
// 2. querydsl plugins 추가
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
id 'java'
}
//...
dependencies {
// 3. querydsl dependencies 추가
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
//...
}
test {
useJUnitPlatform()
}
/*
* queryDSL 설정 추가
*/
// querydsl에서 사용할 경로 설정
def querydslDir = "$buildDir/generated/querydsl"
// JPA 사용 여부와 사용할 경로를 설정
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
// build 시 사용할 sourceSet 추가
sourceSets {
main.java.srcDir querydslDir
}
// querydsl 컴파일시 사용할 옵션 설정
compileQuerydsl{
options.annotationProcessorPath = configurations.querydsl
}
// querydsl 이 compileClassPath 를 상속하도록 설정
configurations {
compileOnly {
extendsFrom annotationProcessor
}
querydsl.extendsFrom compileClasspath
}
compileQuerydsl 실행
Gradle 설정이 완료되었다면, Reload Gradle Projdct
를 실행해준 후,
Gradle Tasks -> compileQuerydsl
을 실행해주자.
.
BUILD SUCCESSFUL 을 확인하였다면, build/generated/querydsl
경로에 Project Entity 들의 QClass 가 생성된 것을 확인할 수 있다.
Reference
반응형
'Web > Spring' 카테고리의 다른 글
[Spring] @Transactional 잘 사용해보기 (0) | 2022.05.07 |
---|---|
[JPA] 양방향 관계 Entity 저장하기 (0) | 2022.03.14 |
[JPA] JSON 직렬화 순환 참조 해결하기 (0) | 2022.03.09 |
Spring Boot 2.4 Config file processing (0) | 2022.02.11 |
SpringBoot & Mybatis & MS-SQL (0) | 2022.01.31 |
댓글