본문 바로가기

프로젝트 기록

Entity type으로 Wrapper class를 사용하는 이유

개발을 진행하다가, 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