728x90
게시판의 게시글을 가져오는 api를 작업하고 있는데, 작업이 끝난 후에 Postman으로 확인을 해보면 리스트 안의 내용이 텅텅 비어있는 문제가 생겼다.
에러가 뜨는 것도 아니라서 우선 Serivce에서 Mapper로 DB의 게시글 목록 잘 가져오는 것 확인하고, 문제가 없길래 DTO에 값이 잘 안들어가나 하고 Controller에서 리턴해줄 때 body 값을 확인했는데 body에도 값이 정상적으로 다 들어가 있길래 정말 당황스러웠다.
그래서 온갖 검색어로 다 찾아보면서 삽질하고 있었는데, 겨우겨우 stackoverflow에서 답을 찾을 수 있었다.
문제는 Controller에서 body로 넣어주는 ResponseDto에 Getter가 없어서였다...
@JsonInclude(JsonInclude.Include.NON_NULL)
@AllArgsConstructor
@Getter // <- 이게 없어서 빈 Json 값으로 나왔던 것
@Builder
public class PostResponse {
private String content;
private String title;
private String writer;
private LocalDateTime writeDate;
public static PostResponse of(Post post) {
return PostResponse.builder()
.content(post.getContent())
.title(post.getTitle())
.writer(post.getWriter())
.writeDate(post.getWriteDate())
.build();
}
}
List를 반환해주는 방법이 잘못된 줄 알고 한참 다른 사람들 코드도 비교해가면서 거의 세시간 넘게 찾아다녔는데
뜬금없이 @Getter 어노테이션을 안붙여줘서 문제가 생겼다는걸 확인하고 수정하니 바로 정상적으로 작동했다.
첫 Spring으로 만드는 프로젝트라 그런지 이런 기본적인 것도 모르는 상태로 개발하고 있었는데 그래도 이렇게 하나하나 배워가니 더 열심히 해야겠다.
728x90
'JAVA > Spring' 카테고리의 다른 글
[Spring] JPA Column default 값 적용 안되는 문제 (0) | 2022.04.04 |
---|---|
[Spring] IoC와 DI의 이해 (0) | 2022.04.01 |
Spring Json 응답 시 null 값인 필드 제외하기 (0) | 2022.02.23 |
mybatis.type-aliases-package 여러개 지정하기 (0) | 2022.02.15 |
application.properties 파일 한글 깨짐 현상 (0) | 2022.02.01 |