본문 바로가기
Backend/JPA

[JPA] StackOverflowError

by Everyday Sustler 2023. 5. 27.
반응형

테스트에서 assertThat()을 통해 객체 동일성 비교를 하다가 만나게 된 에러입니다.

 

에러를 확인하면 @Data 어노테이션 위치에서 해당 에러가 발생한 것을 확인할 수 있었습니다.

 

한 가지 주목할 점은 여기서 말하는 StackOverflow가 무한 재귀 함수를 돌릴 때 발생하는 그 StackOverflow와 동일다는 것입니다.

 

이 문제는 @Data 내부 toString()이 양방향 매핑에 의한 순환참조로 호출이 무한하게 반복되기 때문에 발생합니다.

 

가장 간단하게 해결할 수 있는 방법은 @ToString(exclude="대상 Attribute")를 추가해 toString() 호출 대상에서 제외하는 방법이 있습니다.

반응형