작성
·
4.4K
답변 2
9
좋은 질문입니다. null을 사용할 수 있기 때문에 사용하고 있습니다.
프리미티브 타입은 기본값이 0인데 그럼 실제로 id 값이 0인건지, 값이 없는건지 사실 구분하기 어렵습니다. id가 0일 수도 있는거니까요. 그런데 Wrapper 타입인 Long이나 Integer를 쓰면 id가 없는 경우엔 확실히 null이고, 그 자체로 id가 없다는걸 보장할 수 있죠.
5
https://docs.jboss.org/hibernate/orm/5.3/userguide/html_single/Hibernate_User_Guide.html#entity-pojo-identifier
자세한 이유는 나와있지 않긴하지만 Hibernate JPA 공식 문서에서도 Wrapper 타입을 권장하고 있네요.
We recommend that you declare consistently-named identifier attributes on persistent classes and that you use a nullable (i.e., non-primitive) type.