부트캠프에서 파이널 프로젝트를 진행하며 Entity를 생성하다가 문뜩 이런 생각이 들었다. Entity의 Id값은 null이 허용되지 않는데 어째서 Wrapper class인 Long타입으로 작성할까? 기존에는 단순히 하이버네이트에서 권장하는 스펙이 Wrapper class라서 생각없이 작성했지만 저번 멘토님이 지적해주신 사항이 떠올라 찾아보기로 했다. 1. 표현 범위 만약 실제로 배포가 완료된 서비스에서 int형을 사용한다면 저장 범위를 뛰어넘는 수가 Id값에 할당될 수 있다. 2. Null 처리 원시타입 long에 null이 들어온다면 0으로 값이 처리된다. 하지만 entity의 관점에서 봤을땐 0은 null이 아닌 값으로 본다. id가 없을때 null을 선언함으로 id가 없다는 것을 보장할 수 있게..
@PostMapping("/{appointment_seq}/reviews") public void createReview(@PathVariable Long appointment_seq, Principal principal, @RequestBody RequestReviewFormDto dto) 부트캠프에서 파이널 프로젝트를 진행하다 생각없이 짠 코드에 멘토님이 코멘트를 달아주셨다. appointmentSeq 경우 pathvariable 로 받고 있어 null 일수가 없는데 reference type 를 사용한 이유가 있을까요? 망치로 머리를 얻어맞은 기분이였다. 과연 null값이 들어올 수 없는 PathVariable에도 Wrapper class를 사용하는 의미가 있을까? 하이버네이트 공식 문서에서 엔티티..