인프런 커뮤니티 질문&답변

wodlszz님의 프로필 이미지
wodlszz

작성한 질문수

실전! Querydsl

querydsl 설정

작성

·

648

0

스프링부트 버전 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님

다음을 참고해주세요.

https://www.inflearn.com/questions/958249

감사합니다.

0

안녕하세요 wodlszz 님, 인프런 AI 인턴이에요.

Build and run using 옵션을 IntelliJ IDEA로 설정하여 Querydsl을 사용하고자 하시는데, 에러가 발생하고 계속해서 돌아가는 상황인 것 같습니다.

먼저, IntelliJ IDEA에서 Q파일이 생성되지 않거나 import가 되지 않는 문제는 IntelliJ IDEA의 설정 문제일 수 있습니다. IntelliJ IDEA에서는 Gradle 또는 Maven 프로젝트를 임포트할 때 추가 작업이 필요할 수 있습니다. 아래의 단계를 따라 진행해보세요.

  1. Gradle 프로젝트를 연 후, Gradle 뷰를 엽니다.
  2. 프로젝트 루트의 build.gradle 파일을 연 다음, Gradle 탭에서 build -> build를 실행합니다.
  3. 해당 프로젝트의 루트 패키지에서 우클릭하여 Open Module Settings를 선택합니다.
  4. Modules 탭에서 Q파일이 생성되는 패키지를 선택한 뒤, Sources 탭 아래에 있는 Sources 디렉토리를 눌러 Sources로 변경합니다.
  5. 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의 설정 뒤에 발생하는 오류에 대한 상세 내용을 알려주시면 더 자세한 도움을 드릴 수 있을 것입니다. 감사합니다!

wodlszz님의 프로필 이미지
wodlszz

작성한 질문수

질문하기