TIL : 230126

JINSEON YE·2023년 1월 27일

TIL

목록 보기
60/88

에러 메세지

에러: Infinite recursion (StackOverflowError)]

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed:
org.springframework.http.converter.HttpMessageNotWritableException: 
Could not write JSON: Infinite recursion (StackOverflowError)] with root cause

문제: JPA 연관관계에서 양방향 매핑을 선언한 경우 발생
Jackson lib 의 ObjectMapper 객체에 의해 컨트롤러 단에서 JSON 타입을 변환하는 도중에 변환되는 엔티티의 필드가 다른 엔티티를 참조하고 그 엔티티 클래스의 필드가 또 다른 엔티티를 참조하는 무한루프

해결:
양방향 매핑을 맺은 필드에 대해서 두 개의 어노테이션을 붙여야 한다.

@JsonManagedReference
참조가 되는 앞부분을 의미하며, 정상적으로 직렬화를 수행한다.
Collection Type 에 적용된다.
@JsonBackReference
참조가 되는 뒷부분을 의미하며, 직렬화를 수행하지 않는다.

참고

profile
백엔드 개발자

0개의 댓글