728x90
반응형
QueryDSL 설정
QueryDSL 을 설정하다 보면 에러가 발생할 때가 있다.
이를 바탕으로 한방에 설정한 스크립트를 공유해본다.
QueryDSL 추가
- 아래 설정 값을 추가해 준다.
- 뒤에 jakarta 를 추가해준 부분이 있는데 javax 와 혼용되어 사용될 경우 에러가 나기 때문에 설정을 해주었다.
// queryDSL
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api:3.1.0"
// 테스트 코드를 위한 DB 설정
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'com.h2database:h2'
QClass 경로 설정
- QClass 경로를 커스텀해주어 경로를 지정한다.
- 경로를 지정해주지 않아도 잘 될때가 있지만 빌드가 안되면 경로지정을 해줘야 한다.
def querydslGeneratedDir = project.hasProperty('querydsl.generated.dir') ?
project.property('querydsl.generated.dir') : "$buildDir/generated/querydsl"
// 소스셋 설정: Java 소스와 QClass 파일이 생성되는 디렉토리 경로 포함
sourceSets {
main {
java {
srcDirs = ['src/main/java', querydslGeneratedDir]
}
}
}
// QClass 생성 후, 해당 경로를 설정하는 작업
compileJava {
options.annotationProcessorPath = configurations.annotationProcessor
options.compilerArgs = ['-processor', 'com.querydsl.apt.jpa.JPAAnnotationProcessor']
}
Clean 후 Build 를 해준다.
성공적으로 빌드가 되었다
전체 스크립트
plugins {
id 'java'
id 'org.springframework.boot' version '3.4.0'
id 'io.spring.dependency-management' version '1.1.6'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
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 'org.springframework.boot:spring-boot-starter-webflux'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
// queryDSL
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api:3.1.0"
// 테스트 코드를 위한 DB 설정
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'com.h2database:h2'
}
def querydslGeneratedDir = project.hasProperty('querydsl.generated.dir') ?
project.property('querydsl.generated.dir') : "$buildDir/generated/querydsl"
// 소스셋 설정: Java 소스와 QClass 파일이 생성되는 디렉토리 경로 포함
sourceSets {
main {
java {
srcDirs = ['src/main/java', querydslGeneratedDir]
}
}
}
// QClass 생성 후, 해당 경로를 설정하는 작업
compileJava {
options.annotationProcessorPath = configurations.annotationProcessor
options.compilerArgs = ['-processor', 'com.querydsl.apt.jpa.JPAAnnotationProcessor']
}
tasks.named('test') {
useJUnitPlatform()
}
728x90
반응형
'DataBase > JPA' 카테고리의 다른 글
[QueryDSL] QueryDSL 설정 3 - DataSource (0) | 2024.11.26 |
---|---|
[QueryDSL] QueryDSL 설정2 - Mysql 연동 (0) | 2024.11.25 |
[JPA] AttributeConverter (0) | 2022.04.02 |
[JPA] JPA의 설정 옵션들 (0) | 2022.01.26 |
[JPA] JPQL Named 쿼리 (0) | 2021.09.28 |
댓글