
@Getter
@NoArgsConstructor
public class ListTodoResponseDto {
private User user;
private List<GetAllTodoResponseDto> responseDtoList = new ArrayList<>();
public ListTodoResponseDto(User user) {
this.user = user;
this.responseDtoList = user.getTodo().stream().map(GetAllTodoResponseDto::new).toList();
}
}
User 와 Schedule은 이미 양방향 참조를 Entity에서 이루고 있다.
해당 dto에서 생성자를 사용할 때 사용한 stream 문법 부분에서 순환참조가 발생한다. (이미 user는 todo를 참조하고 있고 todo도 user를 참조하고 있어 무한 참조가 발생) = 스택 오버 플로우 발생
해결방안
- User user 위에 @JsonIgnore를 붙어주면 순환참조를 끊어준다.