O INNER JOIN foi válido o conceito, porém com um código mal aplicado, pois deveria ter mostrado a logica em um DTO para tal.
O INNER JOIN foi válido o conceito, porém com um código mal aplicado, pois deveria ter mostrado a logica em um DTO para tal.
Olá solebac, como vai?
Cara, eu acredito que o intuito da aula era mais o de mostrar como trazer do banco de dados um relacionamento entre entidades sem cair no problema das queries N + 1, de uma forma simples e visual.
Um exercício legal seria você implementar a mesma aula usando DTO (como você mesmo sugeriu) e depois compartilhar o resultado aqui na comunidade, pra que a gente aprenda outras formas de resolver o problema. É sempre bom compartilhar conhecimento. O que você acha?
Abraço =)
Estou achando muito estranho também essa aula. O professor não ensina como ele fez a string de conexão, por exemplo. Acredito que tenha uma aula melhor no YouTube. Acho que a Alura tinha que assistir as aulas antes de publicar. Só ter um monte de aulas no portfólio não quer dizer que é uma boa escola. Tem que ter qualidade. Espero que a Alura possa reconhecer as oportunidades de melhorias.
@solebacAcredito que o professor mostrou da forma mais rápida e didatica e focou na programação com jdbc e por isso não usou outros conceitos ( Mas mesmo assim a logica não ficaria no dto (Objeto de Transferência de Dados ) e sim na camada de persistência( caso fosse solucionado com query) ou em um service e controller (caso fosse resolvido no código) para manter a coesão das responsabilidades..
mas mesmo assim uma outra forma das fazer sem "Gambiarra" seria um distinct no próprio select
algo como :
SELECT distinct loja_virtual.CATEGORIA.NOME , loja_virtual.CATEGORIA.DESCRICAO, loja_virtual.CATEGORIA.id FROM loja_virtual.PRODUTO inner join loja_virtual.CATEGORIA where loja_virtual.PRODUTO.categoria_id = loja_virtual.CATEGORIA.id ;
compartilha também seus resultados,
abraços