Wrapper Class와 Primitive Type의 차이와 실무 활용

jj J·2023년 3월 7일
1

Spring

목록 보기
5/5

티켓팅 서비스 개발 중 관습처럼 사용하던 엔티티 ID Long에 대해서 왜 long은 안쓰는 건지 궁금해 알아보았다.

우선 둘의 차이점은 간단하게 다음과 같다.

Long

  • Wrapper Class
  • null을 허용함

long

  • Primitive Type
  • null을 허용하지 않음
  • 기본값 0

Hibernate 공식 문서에서는 다음과 같이 설명하고 있다.

https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html

id가 아직 할당되지 않았음을 표시하기 위해 Wrapper class를 사용해 Null을 대입해놓을 수 있으나, primitive type은 null을 표시할 방법이 없어 Wrapper class 사용을 권장하고 있음.

결론

Entity id 선언 시에는 Long(Wrapper) Type이 필요함. 왜냐하면 해당 Entity가 create되기 전이라면 id가 할당되지 않은 상태가 생길 수 있기 때문.
하지만 생성 후 조회, 수정 등을 하는 메서드에서는 id가 할당되지 않은 Null 상태가 발생할 일이 없고, 따라서 long(Primitive)을 사용해 Null이 아님을 보증해주면 좋을 것이다.

Entity id 선언 할때만 Wrapper 사용, 그 외에는 Primitive 사용하자!!

profile
매일 발전

0개의 댓글