cami-la / academia-digital

Projeto de LAB: Conhendo o projeto Spring data JPA com Java na prática

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Validação Projeto Final

jocelin79 opened this issue · comments

Olá!

Estou tentando realizar a validação do meu código, mas não estou conseguindo utilizar a anotação @Valid.

Segue o Código:

@PostMapping
public Aluno create(@Valid @requestbody AlunoForm form){
return service.create(form);
}

Quando utilizo o @Valid e tento realizar o POST, em aluno, ocorre um erro 500 no Postman.

Contudo, é só retirar o @Valid que o código roda normal e aceita o POST.

Acredito que seja um erro na configuração, mas, se alguém tiver alguma pista, agradeço demais.

obs: estou com a dependência strater validation no POM. e utilizando, no form, as anotações: @SiZe, @past e outros, mas nenhum funciona, exceto o Past. O Past roda o erro 400 no postman, mas o resto só o erro 500.

Estou codando no VS code.

Consegui resolver! Na verdade era um problema com o @notempty da classe AlunoForm. Troquei o @notempty por @NotNull e a validação funcionou corretamente.

Oi, amigo. Tudo bem? (:
Que coisa boa que você consegiu resolver!! Desculpa a demora, estou com a agenda bem corrida.

Mas vamos lá, o @notempty valida se o elemento não é null ou está em branco e só é valido para os elementos dos tipos (CharSequence, Collection, Map and arrays).
Já o @NotNull só valida se o elemento não é null. De qualquer forma, está certo também.

@notempty
Checks whether the annotated element is not null nor empty

Supported data types
CharSequence, Collection, Map and arrays

Hibernate metadata impact
None

@NotNull
Checks that the annotated value is not null

Supported data types
Any type

Hibernate metadata impact
Column(s) are not nullable

Recomendo essa documentação que explica bem direitinho as anotações:
https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#validator-gettingstarted-createproject

Qualquer dúvida, estou por aqui.

Entendi, Camila. Obrigado. Vou dar uma olhada nessa documentação para entender melhor. Fiz a troca por @NotNull e deu certo, mas realmente não sabia bem o pq deu certo kkkkk.