minstory

SpringBoot - Kotlin에서 validation(@Valid)이 동작하지 않을 때 본문

Spring

SpringBoot - Kotlin에서 validation(@Valid)이 동작하지 않을 때

mjuu 2023. 12. 27. 17:49

문제 상황

// Controller 일부
@PostMapping("/update-something")
    fun updateSomething(
        @Valid @RequestPart("request") request: UpdateRequest,
    ) { ... }

// request Class 일부
import jakarta.validation.constraints.Size

class UpdateRequest (
    @Size(max = 20, message = "name 길이가 20자 이하여야 합니다")
    val name: String,
) { ... }

문제 원인

class UpdateRequest (
    @Size(max = 20, message = "name 길이가 20자 이하여야 합니다")
    val name: String,

Kotlin 클래스 필드 프로퍼티가 아니라 생성자에 어노테이션이 적용되고 있어서 request 객체의 프로퍼티에는 @Valid 가 적용되고 있지 않았다.

해결 방법

@Size -> @field:Size 어노테이션 앞에 field를 추가합니다.

class UpdateRequest (
    @field:Size(max = 20, message = "name 길이가 20자 이하여야 합니다")
    val name: String,

reference

'Spring' 카테고리의 다른 글

Spring Boot에서 @Qualifier 어노테이션의 활용  (0) 2024.01.25
Comments