테스트 케이스로 실행 검증 시 Attempt to recreate a file for type study.querydsl.entity.QHello 라는 에러가 발생하였다.
이를 해결한 방법을 공유하려고 한다.
먼저 해당 오류는 QueryDSL과 관련된 빌드 과정에서 QHello라는 파일을 다시 생성하려는 시도 중 문제가 발생했음을 나타낸다. 이는 QueryDSL 사용 시 발생할 수 있는 일반적인 문제 중 하나이다.
반응형
오류 발생 원인
결론부터 말하자면, QueryDSL이 엔티티 클래스를 기반으로 Q타입 클래스를 생성하려고 시도할 때 발생하는 문제로 기존에 생성된 Q타입 파일 삭제하면 해결된다.
즉, 기존 Q 클래스 파일 충돌로 인한 오류라고 생각하면 쉽다.
QueryDSL은 컴파일 시 .java 소스 파일을 바탕으로 Q 클래스를 생성하기 때문에 이미 해당 이름을 가진 클래스 파일이 있으면 충돌이 발생할 수 있다.
해결 방법
- build/generated 디렉토리를 삭제하여 기존 Q 파일을 제거한 후 다시 빌드하면 된다.
- 보통 build/generated/querydsl 디렉토리 아래에 있다.
- 그런 다음 실행해보면 되는데, 자동으로 Q파일이 생성되지 않는다면 아래 방법을 통해 Q파일을 생성한 후 실행하면 프로젝트가 정상 작동하는 것을 볼 수 있다.
- 우측 gradle > Tasks > other > complieQuerydsl 더블클릭
728x90
728x90
반응형
'QueryDSL' 카테고리의 다른 글
[JPA 활용] QueryDSL 기본 Q-Type 활용 방법 (2) | 2024.11.18 |
---|---|
[JPA 활용] JPQL vs Querydsl - assertThat() 사용법 (2) | 2024.11.17 |
[JPA 활용] QueryDSL (4) | 2024.11.14 |