Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Validação com Array ou Lista de Objetos

Opa pessoal, tudo bem?

Gostaria de saber se há alguma forma de fazer validação em um Array ou Lista de objetos. Estou tentando aprofundar um pouco meus estudos e minha ideia é fazer um cadastro em lote e na requisição enviar um JSON mais ou menos assim:

[
    {
        "titulo": "Dúvida 1",
        "mensagem": "Texto da mensagem",
        "nomeCurso": "Spring Boot"
    },
    {
        "titulo": "Dúvida 2",
        "mensagem": "Texto da mensagem 2",
        "nomeCurso": "Linux"
    },
    {
        "titulo": "Dúvida 3",
        "mensagem": "Texto da mensagem 3",
        "nomeCurso": "Spring Boot"
    }
]

O SpringBoot Validation tem algum recurso para esse tipo de validação ou vou precisar percorrer a lista com um laço de repetição e validar os Objetos um a um? Qual seria a melhor solução na opinião de vocês?

2 respostas
solução!

Oi Guilherme,

Nesse caso você pode ter um dto mais ou menos assim:

public class ListaDeTopicosForm {

    private List<TopicoForm> topicos;

    //getter/setter

}

E para que o Bean Validation valide os objetos da lista, basta anotar esse atributo com @Valid:

public class ListaDeTopicosForm {

    @Valid
    private List<TopicoForm> topicos;

    //getter/setter

}

Dessa forma quando o spring for disparar a validação com o bean validation no objeto ListaDeTopicosForm, ele automaticamente vai validar também cada um dos objetos do atributo List<TopicoForm> topicos.

Bons estudos!

Bom dia Rodrigo

Muito obrigado pelo feedback e pela dica para solucionar esse problema, funcionou da maneira que eu gostaria

Abraço