SpringBoot 4.X에서의 Querydsl 설정
64
작성자 없음
0 asked
plugins {
id 'java'
id 'org.springframework.boot' version '4.0.5'
id 'io.spring.dependency-management' version '1.1.7'
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}
group = 'study'
version = '0.0.1-SNAPSHOT'
description = 'querydsl202604'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-h2console'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-webmvc'
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa-test'
testImplementation 'org.springframework.boot:spring-boot-starter-webmvc-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
// test 롬복
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
// 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"
}
tasks.named('test') {
useJUnitPlatform()
}
clean {
delete file('src/main/generated')
}
// querydsl 추가
def querydslDir = layout.buildDirectory.dir("generated/querydsl").get().asFile
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
configurations {
querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
options.annotationProcessorPath = configurations.querydsl
}이렇게 하면 build 폴더에도 Q붙은 엔티티들 나오고요.
테스트 코드 짤 때도 Q붙은 엔티티들 불러올 수 있습니다.
참고하세요.
Answer 2
2
잘못 올려서 삭제하려 했더니 글이 삭제되진 않았네요.
완성본 다시 올립니다.
plugins {
id 'java'
id 'org.springframework.boot' version '4.0.5'
id 'io.spring.dependency-management' version '1.1.7'
}
group = 'study'
version = '0.0.1-SNAPSHOT'
description = 'querydsl202604'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-h2console'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-webmvc'
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa-test'
testImplementation 'org.springframework.boot:spring-boot-starter-webmvc-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
// test 롬복
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
// 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"
}
tasks.named('test') {
useJUnitPlatform()
}
// generated 소스 경로를 명시적으로 지정
def generatedDir = "src/main/generated"
sourceSets {
main.java.srcDir generatedDir
}
tasks.withType(JavaCompile).configureEach {
options.generatedSourceOutputDirectory.set(file(generatedDir))
}
clean {
delete file(generatedDir)
}
0
안녕하세요, 인프런 AI 인턴입니다.
Bruce Han님께서 올려주신 Spring Boot 4.X 환경에서의 Querydsl 설정에 대해 주어진 코드 내용을 검토하고 적절한 개선 및 참고 자료를 제안해드리겠습니다.
Bruce Han님께서 작성하신 설정은 Querydsl을 활용하여 Spring Boot 프로젝트에서 빌드 및 테스트 환경을 설정하는 데 필요한 주요 조건을 포함하고 있습니다. Q 타입의 엔티티가 생성되어 빌드 디렉토리에 나타나며, 테스트 환경에서도 필요한 대로 사용할 수 있도록 설정하셨습니다.
추가적인 참고 사항 및 개선점은 다음과 같습니다:
Annotation Processing 활성화: IntelliJ에서 Querydsl의 Q타입이 생성된 후 올바르게 인식되려면, annotation processing이 활성화되어야 합니다.
- IntelliJ IDEA에서
File>Settings>Build, Execution, Deployment>Compiler>Annotation Processors로 이동하여Enable annotation processing옵션이 체크되어 있는지 확인하세요.
- IntelliJ IDEA에서
Lombok 사용 확인: 이미 충분히 설정되어 있지만, 간혹 경로 문제가 발생할 수 있으니, Lombok 설정도 확인해 주시고, 필요한 경우
clean과build를 다시 수행해보세요.Gradle Sync 및 Refresh: 작성하신
build.gradle파일에서 설정을 수정하셨다면, IntelliJ에서 Gradle 변경 사항을 강제로 반영할 수 있도록Gradle>Refresh All Gradle Projects를 클릭하여 반영되었는지 확인하세요.관련 게시물 및 참고자료:
- “개발하고 있는 프로젝트에 Querydsl을 적용해보려고 테스트 중입니다.”: Querydsl을 설정하고 나서 발생하는 다양한 문제 해결 사례입니다.
- “스프링부트 2.6.7, java 8, gradle 7.4.X querydsl 설정 방법 공유”: Querydsl 설정 중 발생할 수 있는 다양한 이슈 해결 방법이 게시되어 있습니다.
- “내가 쓴 SpringBoot 2.7 에서의 queryDsl 설정 방법”: Querydsl 설정에 대한 다른 접근 방법과 설명이 있어, 다른 경우의 문제 해결에 도움이 될 수 있습니다.
- “개발하고 있는 프로젝트에 Querydsl을 적용해보려고 테스트 중입니다.”: Querydsl을 설정하고 나서 발생하는 다양한 문제 해결 사례입니다.
위 자료들을 확인하시어 설정 과정에서 발생할 수 있는 다양한 문제에 대한 컨텍스트를 얻고 문제 해결에 도움이 되시길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
querydsl 오픈소스에 대한 질문
0
65
1
예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?
0
105
1
Querydsl 6.X버전에 대해서 어떻게 생각하시나요?
0
309
2
여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요
1
67
1
fetchResults()는 더이상 권장되지 않는다는데 맞나요?
0
158
1
querydsl sum() 메서드 없어요.
0
156
2
build 디렉터리 생성
0
134
2
자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?
0
112
2
현재 Querydsl에서 from절 서브쿼리를 지원하나요?
0
87
1
오타 제보 드립니다.
0
69
2
벌크 연산과 flush, clear
0
75
1
Run As Intellij 로 변경시 Q타입 import 불가
0
84
1
QHello import하기 문제 발생
0
146
2
등록된 함수 보는법(H2Dialect) 질문
0
67
2
5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의
1
191
2
[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??
1
195
1
querydsl 설정 문제
0
220
2
quey dsl 설정부분
0
156
2
count 쿼리 관련 질문입니다!
0
74
1
stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.
0
89
1
답변부탁드리겠습니다.
0
88
2
(OrderSpecifier)관련 내용 어디있을가요
0
60
1
중급문법 벌크연산에서
0
77
2
OpenFeign/QueryDSL 관련 정보 공유
2
680
1

