반응형
이 에러는 Initialize 되지 않은 Proxy 객체에 접근하는 경우 발생합니다.
대표적으로, 연관 관계에 있는 객체가 FetchType.LAZY 발라져 있는 경우 연관 관계 객체가 필요한 시점까지 select 명령을 수행하지 않습니다.
즉, Proxy 객체가 Initialize 되지 않습니다.
예를 들어, 특정 Member 객체를 조회할 때 Team 클래스 fetch 값이 FetchType.LAZY 으로 설정된 경우, 연관된 Team 객체를 가져오지 않습니다.
이 때, 객체 비교를 위해 assertThat(res).isEqualTo(member) 또는 member.getTeam().getName() 등을 수행하는 경우 실체가 없는 Proxy 객체를 호출하기 때문에 에러가 발생합니다.
이를 해결하기 위해서는 FetchType.EAGER로 변경하는 방법이 있으나 크게 추천되지 않습니다.
반응형
'Backend > JPA' 카테고리의 다른 글
[JPA] 다대다(N:N) 관계 (0) | 2023.07.03 |
---|---|
[JPA] 프록시 객체의 직관적 이해 (0) | 2023.06.12 |
[JPA] 영속성 컨텍스트 1차 캐시의 주의점 (0) | 2023.06.06 |
[JPA] org.hibernate.PersistentObjectException: detached entity passed to persist 에러 (0) | 2023.06.06 |
[JPA] StackOverflowError (0) | 2023.05.27 |