Pessoal, estou enfrentando problema de lentidao no meu select, pois o select abaixo esta me retornando 1938 linhas, sendo que varias linhas repetidas, fiz um select utlizando o distinct retornou 60 linhas
como eu poderia utilizar o distinct no select abaixo :
jpql.append("select e ");
jpql.append("from Especificacao e ");
jpql.append(" join e.analisesEspecificadas ae ");
jpql.append(" join ae.analise a ");
jpql.append("where a.matriz = :matriz ");
ArrayList<ObjetoSelecionavel<Especificacao>> especs = new ArrayList<ObjetoSelecionavel<Especificacao>>();
Set<Especificacao> especificacoesDaMatriz = analiseService
.buscarEspecificacoesPorMatriz(matriz);
for (Especificacao especificacao : especificacoesDaMatriz) {
ObjetoSelecionavel<Especificacao> objSelecionavel = new ObjetoSelecionavel<Especificacao>(
especificacao);
especs.add(objSelecionavel);
}
@SuppressWarnings("unchecked")
public Set<Especificacao> buscarEspecificacoesPorMatriz(Matriz matriz) {
StringBuffer jpql = new StringBuffer();
jpql.append("select e ");
jpql.append("from Especificacao e ");
jpql.append(" join e.analisesEspecificadas ae ");
jpql.append(" join ae.analise a ");
jpql.append("where a.matriz = :matriz ");
Query query = em.createQuery(jpql.toString());
query.setParameter("matriz", matriz);
query.setHint("org.hibernate.cacheable", true);
Set<Especificacao> especificacoes = new TreeSet<Especificacao>(query
.getResultList());
return especificacoes;
}