에러 메세지
Could not write JSON: Infinite recursion (StackOverflowError)
원인 및 해결
JPA엔티티,JSON 변환 에러이다.
원인
- 연관관계 선언을 한 경우 발생
- jackson lib의 objectmapper 객체에 의해 json타입을 변환하는 도중에 변환되는 엔티티의 필드가 다른 엔티티를 참조하고 그 엔티티 클래스의 필드가 또 다른 엔티티를 참고 하고..의 무한 루프가 발생
해결방안
양방향 매핑을 맺은 필드에 대해서 두 개의 어노테이션을 붙여야한다.
- @JsonManagedReference
- 참조가 되는 앞부분을 의미하며, 정상적으로 직렬화를 수행한다.
- Collection Type에 적용된다.
- @JsonBackReference
- 참조가 되는 뒷부분을 의미하며,직렬화를 수행하지 않는다.
Reference
[문제해결] Infinite recursion (StackOverflowError)