querydsl 설정
839
작성한 질문수 10
스프링부트 버전 3.1.5
자바 17
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
위 버전들을 사용중인데, 강의자료에 있는 querydsl로 잘 되지않아 구글링 및 질문게시판을 보다가
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.5'
id 'io.spring.dependency-management' version '1.1.3'
}
group = 'study'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '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'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// ⭐ Spring boot 3.x이상에서 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"
//쿼리 파라미터 로그 남기기
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
}
tasks.named('test') {
useJUnitPlatform()
}
// === ⭐ QueryDsl 빌드 옵션 (선택) ===
def querydslDir = "$buildDir/generated/querydsl"
sourceSets {
main.java.srcDirs += [ querydslDir ]
}
tasks.withType(JavaCompile) {
options.annotationProcessorGeneratedSourcesDirectory = file(querydslDir)
}
clean.doLast {
file(querydslDir).deleteDir()
}
이렇게 설정 후 돌려보니

이렇게 설정 했을 때만 Q파일이 생성되고 잘 작동하였습니다.
Build and run using을 IntelliJ IDEA로 하면 Q파일이 경로가 잘못된 것인지 생성은 되는데 import가 되지 않았습니다.
그냥 저렇게 사용하다가 '조회 API 컨트롤러 개발' 강의를 보다 QuerydslApplication을 돌려보니 오류가 나와 구글링 해보니 Build and run using을 IntelliJ IDEA로 설정해야 한다고 하더라구요
근데 그렇게 하면 또 Q파일이 에러가 나고 계속 에러가 돌고 도는 것 같습니다.
Build and run using을 IntelliJ IDEA로 설정하려면 build.gradle을 어떻게 작성해야 하나요??
답변 2
0
안녕하세요 wodlszz 님, 인프런 AI 인턴이에요.
Build and run using 옵션을 IntelliJ IDEA로 설정하여 Querydsl을 사용하고자 하시는데, 에러가 발생하고 계속해서 돌아가는 상황인 것 같습니다.
먼저, IntelliJ IDEA에서 Q파일이 생성되지 않거나 import가 되지 않는 문제는 IntelliJ IDEA의 설정 문제일 수 있습니다. IntelliJ IDEA에서는 Gradle 또는 Maven 프로젝트를 임포트할 때 추가 작업이 필요할 수 있습니다. 아래의 단계를 따라 진행해보세요.
- Gradle 프로젝트를 연 후, Gradle 뷰를 엽니다.
- 프로젝트 루트의 build.gradle 파일을 연 다음, Gradle 탭에서
build -> build를 실행합니다.
- 해당 프로젝트의 루트 패키지에서 우클릭하여
Open Module Settings를 선택합니다.
Modules탭에서Q파일이 생성되는 패키지를 선택한 뒤,Sources탭 아래에 있는Sources디렉토리를 눌러Sources로 변경합니다.
Project Structure창에서 OK를 클릭하여 설정을 저장합니다.
위의 단계를 따라 진행하시면 IntelliJ IDEA에서 Q파일이 정상적으로 생성되고 import도 정상적으로 작동할 것입니다. 프로젝트가 Maven인 경우에도 비슷한 설정을 수행하시면 됩니다.
또한, Build and run using을 IntelliJ IDEA로 설정하려면 build.gradle 파일에 추가 구문을 작성해야 합니다. 따라서 아래의 내용을 build.gradle 파일에 추가해 보세요.
bootRun {
systemProperties['spring.devtools.restart.enabled'] = 'true'
systemProperties['spring.devtools.livereload.enabled'] = 'true'
}
위 설정을 추가하고 나서 다시 IntelliJ IDEA에서 Build and Run을 하시면 정상적으로 동작할 것입니다.
만약 위의 방법으로 문제가 해결되지 않는다면 IntelliJ IDEA의 설정 뒤에 발생하는 오류에 대한 상세 내용을 알려주시면 더 자세한 도움을 드릴 수 있을 것입니다. 감사합니다!
SpringBoot 4.X에서의 Querydsl 설정
0
88
2
querydsl 오픈소스에 대한 질문
0
72
1
예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?
0
109
1
Querydsl 6.X버전에 대해서 어떻게 생각하시나요?
0
317
2
여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요
1
70
1
fetchResults()는 더이상 권장되지 않는다는데 맞나요?
0
160
1
querydsl sum() 메서드 없어요.
0
159
2
build 디렉터리 생성
0
136
2
자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?
0
114
2
현재 Querydsl에서 from절 서브쿼리를 지원하나요?
0
91
1
오타 제보 드립니다.
0
72
2
벌크 연산과 flush, clear
0
76
1
Run As Intellij 로 변경시 Q타입 import 불가
0
88
1
QHello import하기 문제 발생
0
147
2
등록된 함수 보는법(H2Dialect) 질문
0
68
2
5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의
1
196
2
[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??
1
200
1
querydsl 설정 문제
0
222
2
quey dsl 설정부분
0
158
2
count 쿼리 관련 질문입니다!
0
75
1
stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.
0
89
1
답변부탁드리겠습니다.
0
89
2
(OrderSpecifier)관련 내용 어디있을가요
0
65
1
중급문법 벌크연산에서
0
81
2





