não daria para fazer um INNER JOIN
para trazer os itens sem precisar fazer outro find por id ?
não daria para fazer um INNER JOIN
para trazer os itens sem precisar fazer outro find por id ?
Oi Flávio, tudo bem?
Entendo que você esteja se perguntando se poderíamos usar um INNER JOIN
para trazer os itens sem precisar fazer outro find
por id. A resposta é sim, geralmente é possível, e pode ser uma maneira eficaz de otimizar as consultas ao banco de dados.
No entanto, no código que estamos trabalhando, optamos por uma abordagem diferente. Primeiro, estamos mapeando todos os produtoId
dos itens do pedido para uma lista produtosIds
. Em seguida, estamos usando a função findBy
do TypeORM, que recebe um objeto com as condições da consulta, para buscar todos os produtos que têm um id na lista produtosIds
. Isso é feito através do operador In
, que verifica se o id do produto está na lista produtosIds
.
Depois, para cada item do pedido, estamos buscando o produto relacionado na lista de produtosRelacionados
que acabamos de buscar. Isso é feito através da função find
, que retorna o primeiro elemento que satisfaz a condição fornecida. Nesse caso, a condição é que o id do produto seja igual ao produtoId
do item do pedido.
Essa abordagem tem a vantagem de que estamos fazendo apenas uma consulta ao banco de dados para buscar todos os produtos relacionados de uma vez, em vez de fazer uma consulta para cada item do pedido.
Um abraço e bons estudos.