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

[Bug] Ao implementar o método converter, os registros foram duplicados

Fala pessoal, beleza?

Na aula "Usando DTO" eu fiz os mesmos passos do professor, porém quando fui rodar os registros vieram duplicados e como se tivessem sido "cadastrados" no mesmo instante. Segue print.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Código: TopicoController.java

@RestController
public class TopicoController {

    @RequestMapping("/topicos")
    public List<TopicoDto> lista() {
        Topico topico = new Topico("Dúvida", "Dúvida com SpringBoot", new Disciplina("Frameworks back-end", "Back-end"));

        return TopicoDto.converter(Arrays.asList(topico, topico, topico));
    }
}

TopicoDto.java

    public TopicoDto(Topico topico) {
        this.id = topico.getId();
        this.titulo = topico.getTitulo();
        this.mensagem = topico.getMensagem();
        this.dataCriacao = topico.getDataCriacao();
    }

    public Long getId() {
        return id;
    }

    public String getTitulo() {
        return titulo;
    }

    public String getMensagem() {
        return mensagem;
    }

    public LocalDateTime getDataCriacao() {
        return dataCriacao;
    }

    public static List<TopicoDto> converter(List<Topico> topicos) {
        return topicos.stream().map(TopicoDto::new).collect(Collectors.toList());
    }
}

De antemão agradeço o apoio!

2 respostas
solução!

Oii, Beatriz! Tudo certo?

Esse não é um bug! Ali no controller, você criou um único objeto tópico e adicionou ele na lista três vezes. É como se ela tivesse 3 elementos iguais. Caso queira ver como funciona com elementos diferentes, precisa criar mais alguns objetos e passar no método.

Espero ter ajudado! Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Oi, Iasmin. Estou bem e você?

Muito obrigada pela ajuda, eu não havia me atentado. Criei mais objetos e passei no método, entendi o que ocorreu.

Mais uma vez, muito obrigada!