본문 바로가기
스프링 부트/JPA

@NotNull, @NotEmpty, @NotBlank 차이

by illlilillil 2022. 2. 19.

엔티티의 필드 값을 정하다 Not Null 설정을 정하려다 @NotNull과 @NotBlank @NotEmpty라는 세 어노테이션이 있는 것을 알게 되었습니다.

세 어노테이션 모두 Bean Validation (Hibernate Validation) 에서 제공하는

표준 Validation 입니다.

  1. NotNull은 javax.validation.constraints.NotNull 으로 validation 패키지 안에 있는 어노테이션으로 기본적으로 Null 값을 허용하지 않으나 “”과 “ “으로 빈 칸과 공백을 허용합니다.
  2. NotEmpty는 null과 “”는 허용하지 않습니다. 그러나 “ “은 허용하게 됩니다. 공백 값 또한 정상 처리 되도록 하고 싶을때 사용하면 될 거 같습니다.
  3. NotBlank는 null, “”, “ “ 모두 허용하지 않습니다. 가장 강도가 센 어노테이션임을 알 수 있습니다.

세 가지의 특징을 정리해보자면

  • @NotNull : 반드시 값이 있어야 한다.
  • @NotEmpty : 반드시 값이 존재하고 길이 혹은 크기가 0보다 커야한다.
  • @NotBrank : 반드시 값이 존재하고 공백 문자를 제외한 길이가 0보다 커야 한다.

댓글