❗️ 에러 내용
test를 위해 Chat 엔티티를 임의로 추가했다가 지웠는데 File 엔티티와의 매핑이 잘못 되었다는 오류가 났다.
❗️ 에러 문구
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Association 'com.one.social_project.domain.chat.entity.Chat.file' is 'mappedBy' a property named 'chat' which does not exist in the target entity type 'com.one.social_project.domain.file.entity.File'
에러 메시지는 File 엔티티의 mappedBy 속성이 Chat 엔티티에 존재하지 않는 속성을 참조하고 있다고 한다.
근데 Chat 엔티티 자체를 삭제했고, File 엔티티에서 Chat 부분은 다 주석 처리 했는데?🤷
💡 에러 원인
Chat 엔티티를 삭제했더라도, 이전 빌드된 클래스 파일이 남아 있거나 Hibernate가 삭제된 엔티티의 매핑 정보를 캐싱하고 있어 문제가 발생한다.
✅ 선택한 해결 방법
프로젝트 정리 및 재빌드
./gradlew clean build
- 터미널에서 프로젝트 디렉토리로 이동한 후, Gradle 명령어를 사용하여 기존 빌드 파일을 정리하고 프로젝트를 다시 빌드한다.
- clean 명령은 기존 빌드된 클래스 파일과 리소스를 삭제하며, 이후 build 명령으로 프로젝트를 새로 빌드하면 Hibernate가 최신 상태의 엔티티 매핑 정보를 로드한다.
- 재빌드 후 Hibernate가 최신 매핑 정보를 기반으로 동작하므로 오류가 해결되었다.