에러 메세지
에러: 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
참조가 되는 뒷부분을 의미하며, 직렬화를 수행하지 않는다.