inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Querydsl

Querydsl 설정과 검증

Spring boot 2.7 영한님 강의 Q클래스 경로와 똑같이 할 수 있는 설정 공유합니다.

729

흰머리오목눈이
0

// 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
}

다른 분께서도 내용 공유를 해주셨습니다만, 저같은 경우에는 영한님 강의와 똑같은 경로로 Q클래스 생성하면서 진행하고 싶어 방법을 찾아보다가 다음 설정을 찾았습니다.

출처 : https://data-make.tistory.com/728

 

저같은 경우 문제는 다음과 같았습니다.

  1. compileQuerydsl 로 Q클래스 생성 후, 테스트 코드를 돌리면 java: Attempt to recreate a file for type study.querydsl.entity.QHello 에러 발생

  2. generated 폴더를 삭제 후, 테스트 코드를 돌리면 성공.

위 상황에서 테스트 코드를 Run 하기 전에 항상 Q 클래스를 만들려고 시도한다는걸 알게되서 build.gradle 마지막에 기존에 Q 클래스가 있다면 삭제하고 진행하라고 코드를 넣어도 똑같은 현상이 반복됐었습니다.

이 후 검색을 하다가 위의 설정을 알게됐습니다. compileQuerydsl 로 Q 클래스 생성 후, 테스트 코드를 돌려도 잘작동합니다.

만약 영한님하고 같은 화면, 흐름으로 강의를 진행하시고 싶은 분들 있으시면 참고하시면 좋을것 같아요.

 

다들 화이팅입니다.

java jpa

답변 1

0

y2gcoder

안녕하세요. 흰머리오목눈이

정보 공유 감사합니다 :)

정처기2회실기를 마치고.

0

20

0

방산 SW 개발자가 되기 위한 조언을 부탁드립니다!

1

112

1

JAVA로 백엔드 프로젝트

0

82

1

26년1회 실기 합격할수 있을까??ㅠㅠ

0

184

1

자바 실무 단계

0

318

2

진로가 큰 걱정입니다...

0

308

1

공부 방향

0

322

1

안녕하세요! 실무와 관련되서 질문드립니다!

0

340

1

함수형 인터페이스 활용

0

361

1

WebFlux를 실무에 적용하기 전에 고민이 있습니다.

0

311

0

코딩테스트 준비

0

472

1

공부하다 진도를 못 나가고 있어요 ㅜㅜ

0

409

1