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

Como buscar uma lista?

Olá, conseguem me explicar oque esta faltando?

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

Insira aqui a descrição dessa imagem para ajudar na acessibilidade DTOInsira aqui a descrição dessa imagem para ajudar na acessibilidade Porem não lista os itens.

aguardo ansioso  rsrss
8 respostas

Oi André!

O ideal é criar dtos para o cliente e para a lista de itens. Algo como:

public record ListarPedidoDTO(Long id, DadosClienteDTO cliente, List<ItemPedidoDTO> itens, double valorTotal){}
public record DadosClienteDTO(Long id, String nome, /*outros campos...*/){}
public record ItemPedidoDTO(Long id, /*outros campos...*/){}

Em cada DTO coloque apenas as informações que deseja retornar.

ola Rodrigo! criei as DTOs porem não estou conseguindo utiliza-las , com a lista em vermelho é oque o STS sugere nos campos, porem estou passando.

segue as imagens: Insira aqui a descrição dessa imagem para ajudar na acessibilidadea DTO DadosClienteDTO

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

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

public record ListarPedidoDTO(Long id, DadosClienteDTO cliente, List<ItemPedidoDTO> itens, double valorTotal){

    public ListarPedidoDTO(Pedido pedido) {
        this(
            pedido.getId(), 
            new DadosClienteDTO(pedido.getCliente()), 
            pedido.getItens().stream().map(ItemPedidoDTO::new),
            pedido.getValorTotal()
            );
    }

}

ok, questão DTOs resolvido, porem não listo ainda os itens

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

Sei que isso, ainda não vimos no curso, mas estou fuçando rsrsrsrs

sera que o problema esta aqui nesse construtor?

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

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

Sim, é provável que tenha salvo no banco o pedido sem os itens e por isso a lista está vindo vazia no json. Pra resolver vai depender de como está seu código que salva um novo pedido.

Mas, no caso o pedido não vai o itempedido e sim, no itempedido é que vai o pedido, não é isso? essa é a tabela ItemPedido Insira aqui a descrição dessa imagem para ajudar na acessibilidade

e essa é a tabela Pedido Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Talvez no próximo curso isso fique mais claro, desde já agradeço pela paciência rsrsrsr

Ah está salvando sim. Mas acho que ta salvando errado. Olha na tabela ItemPedido que o id do pedido está 37 e não 50. Parece que ta colocando no id do pedido o mesmo id do produto

solução!

na realidade ja tinha resolvido isso, mas observei que tinha apagado registros pedido do banco manualmente e estava pedindo para mostrar pedidos nos quais não tinha estava na tabela item pedido, agora sim esta aparecendo tudo, valeu Rodrigo!