본문 바로가기

개발/JPA

[JPA] Entity 설계시 ID 값을 Long으로 지정하는 이유

JPA 공부중 의문이 생겼다. 

왜 id는 int, long, Integer가 아닌 Long을 사용할까?

 

1) int가 아닌 이유

long이 더 많은 값을 저장할 수 있다. 

(비교)

int 

- 저장 공간: 32 bit

- 값의 범위 : -2147483648 ~ 2147483647

long

- 저장 공간: 64 bit

- 값의 범위: -9223372036854775808 ~ 9223372036854775807

 

2) long 대신 Long 쓰는 이유

long은 primitive type으로, 값이 없을 경우 0으로 초기화된다. 

따라서, id가 없어서 0으로 세팅이 된 것인지, 아니면 실제 값이 0인지 데이터만 보고 판별할 수 없다. 

반면 Long은 wrapper type으로, 값이 없을 경우 null로 초기화 된다. 따라서 값이 0이라면, id가 0으로 저장됐음을 알 수 았다. 

 

레퍼런스

1. 인프런 답변: id값을 Long 타입으로 지정하는 이유가 따로 있나요??

https://www.inflearn.com/questions/260916