개발을 진행하다가, Entity class에서는 Integer, Long, Boolean등 모두 wrapper class를 사용한다는 것을 깨닫고, 그 이유를 알고 싶어서 서칭을 시작했다.
내 기준 가장 잘 설명되었던 블로그는 다음과 같다.
https://blog.naver.com/tlsgur0529
tlsgur0529님의블로그 : 네이버 블로그
github: github.com/rlatls1997 gmail: rlatls1997@gmail.com
blog.naver.com
다만 링크를 타고 들어가면 바로 해당 포스팅으로 넘어가지 않아서, 잠시 해당 부분 캡쳐본을 보자면
즉, 기본형은 null처리를 할 수 없고 0으로 디폴트 초기화가 일어난다.
때문에 예를 들어 0이 식별자로서의 값인지, 값이 없음의 0인지 구별하지 못하며 때로는 원하지 않는 값이 들어가 버릴 수도 있다. 그렇기 때문에 null을 담을 수 있는 Wrapper class를 사용한다는 것이다.
이는 실제로 내가 기본형으로 타입을 선언해서 애를 먹은 후 더욱 와닿았다.
likeStatus, scrapStatus를 boolean으로 선언했더니, false로 디폴트 초기화가 일어나 builder에 포함시키지도 않았는데 json 응답값으로 false가 나가버렸다.
이를 해결하기 위해 Boolean으로 선언하여 null로 디폴트 초기화가 일어나게 한 후, @JsonInclude(JsonInclude.Include.NON_EMPTY) 어노테이션을 통해 응답값에서 제외시켰다.
'프로젝트 기록' 카테고리의 다른 글
MobaXterm을 통한 배포 기록 (0) | 2022.02.23 |
---|---|
JPA Paging 삽질 기록 (0) | 2022.02.23 |
정적 팩토리 메서드 (0) | 2022.02.23 |
Thread Local이란? (0) | 2022.02.23 |
기타 에러 해결 기록들 (0) | 2022.02.23 |