Skip to content

@NotNull vs @Column(nullable = false)의 차이

On Yoo edited this page Apr 8, 2024 · 2 revisions

코드리뷰에서 다음과 같은 리뷰가 달렸고 거기에 대해 리서치한 결과를 기록하고자 한다.

코드리뷰 링크

결론만 말하면 @NotNull 어노테이션을 사용하는 것이 더 적절하다.

참고한 블로그 글은 다음과 같다.

링크

@Column(nullable = false)는 JPA가 만든 엔티티의 필드 값이 null로 채워진 상태에서도 정상적으로 수행되다가 데이터베이스 쪽으로 SQL 쿼리가 도착한 순간테이블 컬럼의 NOT NULL 옵션에 의해 예외가 발생된다.

그러나 @NotNull 어노테이션은 데이터베이스 쪽으로 SQL 쿼리가 보내지기 전에, 정확히는 JPA가 만든 엔티티의 필드 값이 null로 채워지는 순간에 예외가 던져진다.

즉 @NotNull 어노테이션이 보다 더 빠른 단계에서 같은 예외를 검출하므로, 더 안전하다고 볼 수 있겠다.

Clone this wiki locally