Olá, conseguem me explicar oque esta faltando?
Controller
DTO Porem não lista os itens.
aguardo ansioso rsrss
Olá, conseguem me explicar oque esta faltando?
Controller
DTO Porem não lista os itens.
aguardo ansioso rsrss
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: a DTO DadosClienteDTO
a DTO ItensPedidosDTO
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
Sei que isso, ainda não vimos no curso, mas estou fuçando rsrsrsrs
sera que o problema esta aqui nesse construtor?
Classe Pedido
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
e essa é a tabela Pedido
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
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!