yeny_lab

[Spring] DTO 매핑시 특정 키만 null 값

2024. 11. 6. 09:14·JAVA/Application
728x90

 

나머지 값들은 다 정상적으로 매핑되어 값이 잘 들어가는데, 특정 키만 null로 들어가는 것을 발견했다.

원인은 필드명이었다.

 

아래 글 덕분에 알게 되었다.

 

https://bcp0109.tistory.com/309

 

Spring Request DTO 에 null 값이 들어가는 이유 (Jackson, Lombok)

Overview Spring Boot 로 REST API 를 테스트 하다가 이상한 이슈에 직면했습니다. 클라이언트에서 @RequestBody 로 요청을 받기 위한 DTO 클래스를 만들고 값을 입력 받았는데 null 값이 입력되는 겁니다. 처

bcp0109.tistory.com

 

 


문제가 되는 필드명은 cId였다. 

소문자 하나 다음에 바로 대문자가 나오는 필드명이 문제가 되는 것이다.

 

Spring은 http 요청을 Dto로 매핑하는 Message Converter로 Jackson을 사용한다. Jackson은 Getter 메서드명에서 필드명을 추출하는데, 그 추출 방식이 원인이다. Jackson은 맨앞부터 이어지는 대문자를 모두 소문자로 변경해 리턴한다. cId 필드의 Getter명은 getCId이고, 맨앞부터 이어지는 대문자를 모두 소문자로 바꾸면 필드명이 cid로 추출되어버려서 기존 cId 필드와 매핑이 불가했던 것이다. 

 

.

.

 

이 문제를 해결하기 위한 방법은 아래와 같다.

 

1. Lombok 말고, 직접 Getter만들기

- getCId가 아닌 getcId라는 이름으로 만들자

(cf. Intellij 기능으로 Getter를 생성하면 그렇게 된다)

2. 해당 DTO 필드에 @JsonProperty("cId")와 같이 명시해주기

3. 필드명 다시 짓기

728x90

'JAVA > Application' 카테고리의 다른 글

MDC를 사용해 멀티쓰레드 로깅하기 (for 쓰레드간 Context 전달)  (2) 2024.12.16
[Springboot] 스케줄러 동적 등록/삭제/변경  (2) 2024.12.02
[Spring AOP] Consumer onMessage() 비동기 수신 로깅  (0) 2024.10.31
[Redis] cannot deserialize from Object value (SerializationException)  (0) 2024.10.27
다량의 이미지 업로드 속도 최적화 / 트래픽 대비 / 비동기 처리  (0) 2024.09.23
'JAVA/Application' 카테고리의 다른 글
  • MDC를 사용해 멀티쓰레드 로깅하기 (for 쓰레드간 Context 전달)
  • [Springboot] 스케줄러 동적 등록/삭제/변경
  • [Spring AOP] Consumer onMessage() 비동기 수신 로깅
  • [Redis] cannot deserialize from Object value (SerializationException)
히어로맛쿠키
히어로맛쿠키
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (389)
      • 미분류글 (32)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (28)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (59)
      • yyeeennyy (25)
  • 공지사항

    • ^o^/♡
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
히어로맛쿠키
[Spring] DTO 매핑시 특정 키만 null 값
상단으로

티스토리툴바