티스토리 뷰
SW개발/Hibernate
미해결/ org.hibernate.WrongClassException: Object with id: 1289153 was not of the specified subclass: XXXX (Discriminator: XXX)
개소왕 2019. 4. 19. 14:29
org.hibernate.WrongClassException: Object with id: 1289153 was not of the specified subclass: XXXX (Discriminator: XXX)
* 개요
entity A가 있고, 이를 상속하는 B가 있음.
B를 선언시는 @DiscriminatorValue("XXX") 를 함께 선언해줘야 함.
저장되는건 A,B 모두 A의 테이블에 저장됨
B 클래스를 다른 패키지로 옮기고 나서 조회시 위의 오류가 발생함.
* 원인
검색해보니 A,B가 각기 다른 테이블을 사용하면서 ID 를 동일한 값을 가지는 경우 문제가 될 수 있다고 함.
그러나 나의 경우 아니었음 (둘다 A 테이블을 공유함)
* 해결
A 테이블 모든 값 지우고 시작하니 문제 없었음. ( 사실 해결책이 안되지..)
* 가설
- Project clean 이 제대로 되지 않아서 기존 개체와 충돌이 있었을 수도 있겠단 생각이 듦
- SessionFactory 선언 시 packagesToScan 에 옮긴 개체(B) 의 패키지 이름을 제대로 명시해줘야 하는데, 하지 않았거나 틀렸을 수도.