Spring/JPA

QueryDsl> IntelliJ Q클래스 import 불가 문제

챛채 2024. 7. 11. 15:17

Q클래스를 사용해야하는 상황에서 import가 안 되는 현상이 발생

먼저 위치가 올바르게 생성될 수 있도록 Settings -> Annotation Processors 들어가 enable annotation processing체크해주고 소스 디렉토리가 generated로 되어 있는지 확인해준다. 

 

querydsl 파일은 src내에 생성이 되면 안 되므로 src내에 생성 됐으면 삭제해주고 build/generated에 제대로 생성이 되었는지 확인 필수!

 

main에서는 import가 제대로 됐는데 test 코드에서는 QEntity를 인식을 못해서 여러 방법을 시도해보다가 

 

 

Setting -> Gradle 에서 이렇게 설정을 해주니까 동작이 됨,,

 

spring boot 3.xx 버전부터는 build.gradle에서 querydsl plugins 사용하면 안 됨!

 

gralde 설정 조정

 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
    annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
    annotationProcessor "jakarta.annotation:jakarta.annotation-api"
    annotationProcessor "jakarta.persistence:jakarta.persistence-api"
    
clean {
    delete file('src/main/generated')
}
    
    //querydsl 추가 시작(안써도됨)
def querydslDir = "$buildDir/generated/querydsl"

querydsl {
    jpa = true
    querydslSourcesDir = querydslDir
}
sourceSets {
    main.java.srcDir querydslDir
}
compileQuerydsl{
    options.annotationProcessorPath = configurations.querydsl
}

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
    querydsl.extendsFrom compileClasspath
}
//querydsl 추가 끝

 

잘동작함