Spring boot Request DTO에 필드명이 다르지 않는 데 null값이 들어올 경우

릭터·2022년 4월 14일
0

SpringBoot

목록 보기
3/5

Spring boot Request DTO에 null 값이 들어올 경우 (오류)

Request DTO에 들어오는 필드 명이 틀리지도 않은 데 Request DTO에 null 값이 들어오는 오류가 발생하는 경우가 있습니다.
이 오류의 원인을 알려면 jackson 규칙에 대해서 알아야 합니다.

Jackson 규칙

첫번째, 맨앞 두글자가 모두 대문자 인 경우 이어진 대문자를 모두 소문자로 변경하는 것
두번째, 위에 경우가 아닐 때는 맨 앞글자만 소문자로 바꿔주는 것

이 두가지 입니다.
만약 request dto에 null값이 들어온다면,

DTO의 필드명이 대문자인데 소문자로 변경되어서 필드명이 맞지 않아 null값으로 들어왔을 가능성이 있습니다.

DTO의 필드명이 대문자로 시작하면 Getter도 대문자로 시작해야하는데 jackson의 규칙에 따라 get 이후가 대문자로 시작하면 첫글자는 항상 소문자로 바뀌게 되어 필드명과 일치하지 않아서 데이터가 들어가지 않는 것입니다.

만약, json으로 넘어오는 값의 맨 앞 글자를 바꿀 수 없을 경우 jsonProperty를 사용하면 됩니다.

ex)
DTO에서

public class RequestDTO{
	@JsonProperty("DTO")
    private String dto;
  }
profile
풀스택 개발자를 꿈 꾸는 릭터입니다.

0개의 댓글