QueryDSL

[JPA 활용] QueryDSL 환경설정 - java: Attempt to recreate a file for type 오류, 에러 해결

juble 2024. 11. 16. 12:52

테스트 케이스로 실행 검증 시 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