인프런 커뮤니티 질문&답변

silvermanseoul님의 프로필 이미지
silvermanseoul

작성한 질문수

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

13강. 도메인 계층을 Kotlin으로 변경하기 - UserLoanHistory.java, User.java

UserLoanHistory.bookName의 nullability

작성

·

313

1

Book.name@Column(nullable = false)을 붙였으니 UserLoanHistory.bookName도 논리적으로 null이 될 수 없는데요. 그래서 bookName에는 애노테이션을 붙이지 않으신 건가요? 애노테이션을 붙여서 DDL에 물리적으로 not null을 설정해야 하는 게 아닌가 싶어 질문 드립니다.

답변 1

0

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요! silvermanseoul님!! 크으~~ 날카로우십니다 😊 ㅎㅎㅎㅎ

Java 코드를 기준으로 설명 드려 보자면, 말씀해주신것처럼 엄밀히는 @Column(nullable = flase)를 붙여야 null이 될 수 없음이 맞습니다!!! 다만, 추측해주셨다 시피 현재 구현되어 있는 (Java 기준) Service 로직상 null이 들어갈 수는 없어, 강의에서 'null이 들어갈 수는 없다'고 표현하였습니다!!!

추가로, 아시다시피 Kotlin에서는 val bookName: String 이라고만 작성하더라도 자동생성된 DDL에서 not null 제약조건이 붙어 있게 됩니다!!

혹시나 보시다가 궁금한 점 또 생기시면 언제든 편하게 질문 남겨주세요~! 감사합니다!!! 🙏

silvermanseoul님의 프로필 이미지
silvermanseoul

작성한 질문수

질문하기