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 추가 끝
잘동작함