[JPA] JPA 매핑 정보 캐시 문제로 인한 엔티티 삭제 후 매핑 오류

eunoia73·2025년 1월 10일

trouble shooting

목록 보기
9/16

❗️ 에러 내용
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 부분은 다 주석 처리 했는데?🤷


💡 에러 원인

JPA/Hibernate 매핑 정보 캐시 문제

Chat 엔티티를 삭제했더라도, 이전 빌드된 클래스 파일이 남아 있거나 Hibernate가 삭제된 엔티티의 매핑 정보를 캐싱하고 있어 문제가 발생한다.


✅ 선택한 해결 방법

프로젝트 정리 및 재빌드

./gradlew clean build

  • 터미널에서 프로젝트 디렉토리로 이동한 후, Gradle 명령어를 사용하여 기존 빌드 파일을 정리하고 프로젝트를 다시 빌드한다.
  • clean 명령은 기존 빌드된 클래스 파일과 리소스를 삭제하며, 이후 build 명령으로 프로젝트를 새로 빌드하면 Hibernate가 최신 상태의 엔티티 매핑 정보를 로드한다.
  • 재빌드 후 Hibernate가 최신 매핑 정보를 기반으로 동작하므로 오류가 해결되었다.

0개의 댓글