본문 바로가기
Error

[Spring] 순환 참조 실수.. Infinite recursion (StackOverfolwError)

by 2D3 2022. 11. 3.
728x90

 

문제 상황

 

Article article = Article.builder()
                .articleId(1L)
                .title("안녕하세요. 점심 뭐 드시나요??")
                .content("안녕히가세요")
                .email("b@b.com")
                .build();
articleService.createArticle(article);

Comment comment = Comment.builder()
        .commentId(1)
        .content("찬 물에 밥 말아 먹어요~~")
        .article(article)
        .email("a@a.com")
        .vote(1)
        .build();
commentService.createComment(comment);

 

더미 데이터를 @PostConstruct로 만들던 중.. 아무리 게시글을 조회해도 조회가 되지 않는 오류가 발생했다.

아니 답변 1개는 조회가 되는데, 왜! 게시글 전체 보기는 안 되는 거야! 

아 왜 안되지 왜 안되지 이러고 있었는데, 에러메시지를 보니

Infinite recursion (StackOverfolwError) 스태오버플로우가 났다. (스택 오버 플로우 클론을 하고 있는 거지 에러는 안 나도 좋은데^^)

 

어쩐지 URI를 크롬에서 바로 들어가면 저렇게 광인처럼 나오더라니.. 그 때 알아차렸어야 됐는데..

 

문제 해결

Comment comment = Comment.builder()
        .commentId(1)
        .content("찬 물에 밥 말아 먹어요~~")
        .article(article)	// 이 부분에서 자기참조 발생
        .email("a@a.com")
        .vote(1)
        .build();
commentService.createComment(comment);

문제가 되는 .article(article)를 삭제하자마자 바로 응답을 제대로 받을 수 있었다.

위의 코드가 들어가면 코멘트에서 아티클을 참조하고 아티클은 코멘트를 참조하고 코멘트는.....생략

728x90

댓글