문제상황
querydsl오류 매번 번갈아 가면서 오류 발생
1. qclass가 생성안됌
2. qclass가 생성되어도 import불가
3. qclass가 제대로 생성되지 않아 오류
문제원인
1. build가 제대로 작동하지 않음
2. generated파일이 소스루트로 잡히지 않음
3. 클래스를 제대로 읽지 못함
문제 해결
1. java, spring boot, gradle 세가지 버전이 서로 충돌나지 않는 버전으로 맞아야함
2. java 17버전이상에서 build/generated 파일을 인식을 하지 못한다고 함 그래서 소스루트를 gradle설정파일로 잡아줌
그래도 안된다면 소스루트 수동변경 이러면 cannot find symbol 오류가 뜰수도 있음(build폴더무시되었는지 확인 필요)
3. Spring Boot 3.x / Gradle 최신 버전에서 기본 설정만으로는 QueryDSL Q클래스를 IDE가 자동 인식하지 못하는 경우
4. 기존 엔티티에 어노테이션이 제대로 붙어있는지 확인
5. 빌드 클린>후 재빌드 및 reload를 해줌 그래도 안된다면 캐시를 지워봄
querydsl 의존성 주입
implementation "com.querydsl:querydsl-jpa:${querydslVersion}:jakarta"
annotationProcessor "com.querydsl:querydsl-apt:${querydslVersion}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
annotationProcessor "org.hibernate.orm:hibernate-jpamodelgen"
위에 의존성을 주입하고 오류를 해결하기 위해 아래와 같은 설정을 해줌
querydslVersion = "5.0.0"
}
def generated = "src/main/generated"
// ✅ Q클래스 생성 디렉토리 명시 (꼭 필요함)
tasks.withType(JavaCompile).configureEach {
options.generatedSourceOutputDirectory = file(generated)
}
sourceSets {
main {
java {
srcDirs += "$projectDir/build/generated"
}
}
}
clean {
delete file(generated)
}
options.generatedSourceOutputDirectory로 qclass생성 할 위치를 수동으로 지정
sourceSets으로 build/generated가 소스루트로 매번 잡히지 않는 부분을 해결(build파일이 매번 무시됌)
$projectDir
이건 현재 프로젝트 루트경로에서 찾는것
ext로 버전을 지정
※querydsl이 매번 빌드할때나 새로 코드를 수정할시 또 오류가 날 가능성이 높음 주의해서 오류 해결
'Project > Team Project(딱좋은여행)' 카테고리의 다른 글
| 서버 db에 값 미리 넣는 방법 (0) | 2025.04.29 |
|---|---|
| 트러블슈팅 - admin 빌드 오류 (0) | 2025.04.07 |
| 항공 상품 필터 및 페이징 처리 (0) | 2025.03.22 |
| 공공데이터 포털 인코딩 오류 트러블 (0) | 2025.03.06 |
| 딱좋은 여행 코드 정리 (엔티티 연관관계 매핑) (1) | 2025.02.27 |