Pessoal, minha duvida é a seguinte, tenho uma consulta no banco onde me eh retornado uma lista com mais de 5000 registros… consigo pegar todos os registros e talz, mas esta demorando muito… e estou tendo q usar uma lista auxiliar para poder carregar o objeto pois ele nao esta conseguindo carregar todos os registros… gostaria de saber se alguem tem alguma ideia de como melhorar isso…
abaixo segue o metodo
public Collection<OSClienteSMP> findListaOSSMP(String tipoOS) {
osClienteSMPDAO.deleteComErro(tipoOS);
Collection<OSClienteSMP> lista = osVitriaDAO.findListaOSSMPImportar(tipoOS);
Collection<OSClienteSMP> listaux;
Collection<OSClienteSMP> listaRet = new LinkedList<OSClienteSMP>();
while (lista.size() != 0) {
listaux = new LinkedList<OSClienteSMP>();
for (OSClienteSMP os : lista) { [b] aqui seria melhor um iterator?[/b]
if (listaux.size() < 1000) {
listaux.add(os);
} else
break;
}
lista.removeAll(listaux);
atualizaDiferencaOSClienteSMP(tipoOS, OSClienteSMP.SMP, listaux);
findDetalhesOMS(tipoOS, listaux);
findDetalhesSac(tipoOS, listaux);
osClienteSMPDAO.saveOrUpdateOS(listaux);
listaRet.addAll(listaux);
listaux = null;
System.gc();
}
agredeço a ajuda