본문 바로가기
공부(TIL)/Error

error: Attempt to recreate a file for type.....

by 하루지오 2024. 5. 7.

 

Querydsl 활용해서 동적 쿼리를 구현하던 도중에, 이런 오류가 발생했다.

Querydsl이 BaseEntity에 대한 Q 타입을 이미 생성했으며 다시 생성하려고 시도하고 있기 때문에 발생했다고 하는데...

 

Querydsl은 자동으로 엔티티에 대한 Q 타입을 생성하는데, 이미 생성된 경우 다시 생성하려고 하면 충돌이 발생한다고 한다.

 

해결 방법은 chatgpt와 블로그를 통해 아래와 같이 5가지로 추릴 수 있었다.

1. Querydsl의 Q 타입 생성 설정 변경: Querydsl이 BaseEntity에 대한 Q 타입을 생성하지 않도록 설정을 변경
2. BaseEntity에서 Querydsl 타입 생성 제외: BaseEntity 클래스에 @QuerySupertype 어노테이션을 추가
3. Querydsl 타입 직접 생성: BaseEntity에 대한 Q 타입을 직접 생성하고, 사용
4. Gradle 또는 Maven 설정 변경: Querydsl 관련된 타입 생성이 겹치지 않도록 조정
5. Gradle에서 build를 clean
6.build 폴더의 하위 폴더인 generated 삭제

 

2번, 4번, 5번을 시도했으나 실패.

 

6번 시도로 오류 해결. Mission Claer.