O que é melhor? Query ou Iteração?

4 respostas Resolvido
bancojava
S

Suponha que eu tenho um objeto do tipo Pessoa com nome e idade e eu preciso fazer filtros para selecionar as pessoas por idade por exemplo qual é a melhor solução?

isso:

List lp = “SELECT p FROM Pessoa WHERE p.idade = 15”

ou isso:

List lp = "SELECT p FROM Pessoa"
List lp2 = new ArrayList<>();
for (Pessoa pe : lp){
if (pe.idade == 15){
lp2.add(pe);
}
}

Estou perguntando pois filtrar listas muitas vezes é mais fácil do que criar queries, e criar um método para cada query que eu quero fazer está poluindo meu DAO, então pensei que talvez fosse legal eu pegar uma lista de tudo via query e filtrar por “ifs”, mas me veio na cabeça que isso pode consumir mais memoria… Consome? e se consome chega a ser critica essa diferença?

4 Respostas

M
Solucao aceita

A query é mais rapida.
Se for poucos registros você não notará a diferença, do contrario a diferença pode ser critica sim

J

Query sem dúvidas.

Isto é sinal que você deve particionar mais suas classes de acesso a dados, não crie um “saco de queries”. Você poderia ter uma classe chamada PessoasPorIdade responsável somente por esse tipo de relatório.

P

Com apenas 1 linha, a query é muito mais fácil no seu exemplo.

S

Obrigado a todos, eu acho que vou partir pro que o @javaflex falou, dividir as classes, porque tá feio kkkkk

Criado 3 de abril de 2018
Ultima resposta 3 de abr. de 2018
Respostas 4
Participantes 4