본문 바로가기
Error

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

by 2D3 2022. 11. 3.
728x90

Contents

     

    문제 상황

     

    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

    댓글