Um Tribunal de Justiça mantém uma consulta pública em Spring...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: B
Fundamento decisivo: A decisão estava em perceber que a tela exibe apenas alguns campos e que o enunciado pede evitar a materialização desnecessária do grafo de entidades; nesse cenário, a alternativa correta é a que consulta somente os dados necessários.
- Se a consulta é de listagem e a tela mostra poucos campos, prefira projeção DTO em vez de entidades completas.
- Reduzir número de consultas não basta se a solução ainda materializa associações que a tela não usa.
- Quando apenas um dado derivado de uma coleção é exibido, obtenha-o na própria consulta em vez de carregar a coleção inteira.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Gabarito (E)
DTO e projeção são conceitos diferentes, mas podem ser utilizados em conjunto para melhorar a performance de consultas em bancos de dados relacionais.
DTO (Data Transfer Object) é um padrão de projeto utilizado para transferir dados entre diferentes camadas de uma aplicação. Ele é útil quando precisamos selecionar somente alguns atributos de uma entidade e transferi-los para outra camada da aplicação.
Já a projeção é uma técnica utilizada para selecionar somente alguns atributos de uma entidade em uma consulta. Ela pode ser utilizada para melhorar a performance de consultas em bancos de dados relacionais, já que selecionar somente os atributos necessários pode reduzir o tempo de resposta da consulta.
Portanto, a escolha entre utilizar projeção ou DTO depende do contexto da sua aplicação e das suas necessidades específicas. Se você precisa transferir dados entre camadas da sua aplicação, o DTO é uma boa opção. Já se você precisa melhorar a performance de consultas em bancos de dados relacionais, a projeção pode ser uma técnica útil.
Fonte: https://cursos.alura.com.br/forum/topico-dto-vs-projecao-206545
Não entendi a questão na primeira vez que a vi, so depois de errar percebi o que ela quer. A questão diz, na parte "a atualização recente elevou a latência por navegação em associações tardias." que a tabela Processo possui entidades associadas a ela, como por exemplo: Partes e Documentos, e ao selecionar ela, acaba selecionando as outras tabelas associadas a ela.
Ou seja, se você tiver 1.000 resultados de Processos, você terá na realidade 3.000 ( dado arbitrário para facilitar o exemplo ), pois serão 1.000 de Partes + 1.000 de Documentos + 1.000 de Processos ( o famoso N+1 queries )
Assim, uma solução seria criar um DTO para filtrar apenas o campos necessários e resolver o problema da N+1 queiries.
"Ao criar um DTO que contenha apenas as informações necessárias, você pode evitar o carregamento de associações desnecessárias. Essa abordagem é particularmente útil quando você precisa buscar um subconjunto de dados ou quando os relacionamentos são complexos." (exatamente o que a questão pede)
Esse artigo explica direitinho: https://medium.com/@kiarash.shamaii/what-is-n-1-query-generate-problem-in-spring-data-jpa-and-how-to-solve-it-2f3b9f1a7a0b
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo