com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.example.demo.member.dto.MemberDto$Post` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
package com.example.demo.member.dto;
import jakarta.validation.constraints.Pattern;
import lombok.*;
import java.time.LocalDateTime;
import java.util.List;
public class MemberDto {
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public static class Post {
@NonNull
@Pattern(regexp = "^[a-zA-Z0-9+.-]+@[a-zA-Z0-9.-]+$")
private String email;
@NonNull
@Pattern(regexp = ".{8,}")
private String password;
@NonNull
@Pattern(regexp = ".{2,}")
private String name;
}
@Getter
@AllArgsConstructor
public static class Response {
private long memberId;
private String name;
private String email;
private LocalDateTime createAt;
private LocalDateTime modifiedAt;
private List<String> boards;
private List<String> comments;
}
}
기존 Dto에는 @NoArgsConstructor 즉, 기본 생성자가 없었는데
이로 인해 JSON 요청 본문을 예상된 MemberDto.Post 객체로 역직렬화할 수 없었다
NoArgsConstructor를 추가해서 기본 생성자를 만들어주니 문제가 해결되었다.
근데 이전 프로젝트에서는 그냥 됐었는데... 뭐가 문젠지 모르겠음..