cami-la / academia-digital

Projeto de LAB: Conhendo o projeto Spring data JPA com Java na prática
229 stars 241 forks source link

Validação Projeto Final #2

Closed jocelin79 closed 2 years ago

jocelin79 commented 2 years ago

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.

jocelin79 commented 2 years ago

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

cami-la commented 2 years ago

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.

jocelin79 commented 2 years ago

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.