본문 바로가기

Study

[내일배움캠프 TIL] 14일차 - 2. @NotNull vs @Column(nullable = false) 차이점.

728x90
반응형

 

 

1. @NotNull vs @Column(nullable = false) 차이점

두 설정 모두 "값은 비어있으면 안 된다"는 목적은 같지만, 검증하는 시점주체가 다릅니다.

구분 @Column(nullable = false) @NotNull (Jakarta Validation)
역할 DB 테이블에 NOT NULL 제약조건 생성 자바 애플리케이션 단에서 값 검증
체크 시점 DB에 쿼리가 날아간 후 (저장 시점) DB로 쿼리를 보내기 전 (메모리 단계)
에러 결과 DB 에러 (DataIntegrityViolation) 유효성 검사 에러 (MethodArgumentNotValid)

 

예시코드

    
    
@Entity
@Getter
@Setter
@Table(name = "p_review")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class ReviewEntity extends BaseEntity {
    
    @NotNull
    @Min(1)
    @Max(5)
    @Column(nullable = false)
    private Integer rating;
    
   }
반응형