Olá pessoal blz?
estou com um problema peguei um sistema para mim fazer uma melhoria, oque eu percebi que a consulta está demorando muito, ai montei ela no sql server e vi que o problema é mesmo a consulta ela está devolvendo dados duplicados segue a minha DAO.
public Collection<Recurso> getRecursos(Cidade cidade, PlanoSaude planoSaude,
TipoAtendimento tipoAtendimento, String palavraChave) {
String hql = "FROM Recurso a " +
"INNER JOIN a.recursoEspecialidades b " +
"INNER JOIN a.recursoPlanosSaude c " +
"WHERE a.unimed.cidade.id = :cidade " +
"AND a.tipoAtendimento.id = :tipoAtendimento " +
"AND c.planoSaude.id = :planoSaude " +
"AND ( " +
"a.nome LIKE :palavraChave " +
"OR a.endereco LIKE :palavraChave " +
"OR a.numero LIKE :palavraChave " +
"OR a.complemento LIKE :palavraChave " +
"OR a.telefone LIKE :palavraChave " +
"OR a.bairro LIKE :palavraChave " +
"OR a.cep LIKE :palavraChave " +
")";
Query query = getSession().createQuery(hql).setMaxResults(10);
query.setParameter("cidade", cidade.getId());
query.setParameter("tipoAtendimento", tipoAtendimento.getId());
// query.setParameter("especialidade", especialidade.getId());
query.setParameter("planoSaude", planoSaude.getId());
query.setParameter("palavraChave", "%" + palavraChave + "%");
Collection<Recurso> recursos = new ArrayList<Recurso>();
Recurso recurso = null;
for (int x = 0; x < query.list().size(); x ++) {
Object[] array = (Object[]) query.list().get(x);
recurso = (Recurso) array[0];
recursos.add(recurso);
}
return recursos;
}