Error

[Spring Boot] @NotNull @NotBlank @NotEmpty 설정했는데 null 이어도 동작할 때

난감 2024. 7. 18. 17:17
728x90

요청 dto에 @NotBlank 어노테이션을 적용했으나 해당 속성에 null을 입력해도 요청이 정상적으로 작동했다.

CategoryReqDto.java

public class CategoryReqDto {

    @NotBlank(message = "카테고리 이름을 입력해야합니다.")
    private String name;

    @NotBlank(message = "카테고리 타입을 선택해야합니다.")
    private String type;

    public Category toEntity() {
        return Category.builder()
                .name(name)
                .type(type)
                .build();
    }
}

 

해결 방법

build.gradle의 dependencies에 의존성을 추가한다.

implementation 'org.springframework.boot:spring-boot-starter-validation'

 

그리고 해당 dto를 사용하는 컨트롤러의 매개변수에서 @RequestBody 앞에 @Valid 어노테이션을 추가한다.

public ResponseEntity<Long> createCategory(@PathVariable Long ledgerId, @Valid @RequestBody CategoryReqDto categoryReqDto){
        Long createCategoryId = categoryService.save(ledgerId, categoryReqDto);
        return ResponseEntity.ok(createCategoryId);
    }

 

 

Validation 라이브러리는 예외를 방지하기 위해 미리 검증하는 과정을 수행한다.

@Valid 어노테이션은 해당 객체에 대해 유효성 검사를 실행한다.

반응형