@Column(length=)
은 db column 속성을 지정해주는 것이다. 그래서 에러가 발생하면 SQL error가 발생한다.
@Size
와 @Length
는 필드의 크기 검즈에 사용된다. 그렇다면 이둘의 차이가 무엇인가?
@Size
@Length
보다 가볍다.@Length
우리 프로젝트에서 필요한 크기 지정은 @Column(length=)
이다. 기본적으로 사용자로부터 입력받는 것이 없기 때문에, 입력데이터 검증이 필요하지 않다.
@NonNull
롬복 어노테이션으로 자동으로 null체크를 해서 null이 넘어오면 NullPointerException을 발생시키는 어노테이션이다.
builder로 객체 생성할때 한번 null체크를 한다. 이때, IllegalArgumentException()
이 던져지는데, @NonNulll
Annotation으로 NullPointerException()
을 던지면, 어떤게 먼저 던져질지는 모르겠다. 하지만, 객체 생성시 전자가 더 맞는것 같아서 전자로 진행하겠다.
NoArgsConstructor(access=AccessLevel.PROTECTED
사용Entity사용시 기본생성자가 반드시 필요한 이유
NoArgsConstructor(AccessLevel.PRIVATE
이 안되는 이유