[개발] jpa 순환참조, @JsonBackReference

Stormi·2022년 5월 26일
0

개발

목록 보기
12/20

문제점

swagger로 확인할때 무한 조회를 하는 stackoverflow가 발생했다.

이유

Member와 SocialMember가 1:N 양방향 매핑을 해놓은 상태였다.

이렇게 되니, Member의 List < SocialMember> 를 조회하면 SocailMember는 member를 조회하고 또다시 member는 List < SocialMember> 를 조회하면서 무한루프에 빠지게 된다.

컨트롤러를 통해 Member Entity를 DTO로 바꿔서 MemberResponse로 내보낸다.
swagger는 json형태로 되어있는데, 이때 내가 보낸 MemberEntity가 참조하는 SocialMember Entity도 함께 불러오게 된다. Repository에서는 MemberEntity 하나를 return했지만, 컨트롤러를 통해 Response되어 json으로 표시될때 두개의 entity가 계속 불러오면서 무한 루프에 빠진 것이다.

해결방법

@JsonBackReference를 사용해서 DTO를 사용할때 다시 리턴되게하는것을 막는다. 순환참조를 방어하기 위한 annotation이다.

0개의 댓글