[에러] Lombok - StackOverflowError

myeonji·2022년 5월 3일
0

에러

java.lang.StackOverflowError: null

원인

Lombok의 @Data 어노테이션

@RequiredArgsConstructor
@Service
public class PortfolioService {

    private final UserRepository userRepository;

    @Transactional
    public List<Portfolio> portfolList(User user) {
        System.out.println("portfolioService 들어옴");
        List<Portfolio> portfolios = user.getPortfolios();
        System.out.println("포폴 : " + portfolios);
        return portfolios;
    }
}

위 코드의 List<Portfolio> portfolios = user.getPortfolios(); 에서 에러 발생
1. user 엔티티의 toString() 메서드 호출
2. portfolio 엔티티의 toString() 메서드 호출 (Portfolio의 toString에는 User 엔티티가 정의되어 있기 때문)

1~2번 무한 반복으로 에러 발생

해결

User Entity에 @ToString(exclude = "portfolios") 옵션을 추가

0개의 댓글