1
resposta

Validação @NotNull não funciona para o campo Id

Fiz um teste aqui no método put sem passar o Id no Json e não foi gerado um erro de validação, ao fazer um debug descobri que o Id era iniciado com o valor padrão "0" que depois entendi que estava relacionado com o fato do dto ser uma data class, fiz algumas pesquisas mas até agora só consegui encotrar um meio de contornar o problema, mas não sei se seria uma boa prática, então gostaria de saber se existem soluções melhores.

[https://stackoverflow.com/questions/49896933/kotlin-data-class-and-bean-validation-notnull-on-long-fields-does-not-work](Thread no StackOverflow)

1 resposta

Olá William, tudo bem?

Pelo que entendi, você está enfrentando problemas com a validação @NotNull em um campo Id em seu método put, certo? É importante lembrar que a anotação @NotNull é utilizada para garantir que um campo não seja nulo, mas ela não garante que o valor seja diferente de zero.

Uma solução para o seu problema seria utilizar a anotação @Min(1) em seu campo Id, que garante que o valor seja maior ou igual a 1. Dessa forma, se o Id não for passado no Json, será gerado um erro de validação.

Um exemplo de implementação seria:

data class SeuDto(
    @field:NotNull
    @field:Min(1)
    val id: Long,
    ...
)

Espero ter ajudado e bons estudos!