…bom dia a todos,
…tenho algumas consultas implementadas utilizando Criteria.DISTINCT_ROOT_ENTITY para que “teoricamente”, seja realizado um DISTINCT nos objetos retornados e apresentados apenas os não repetidos, até ai tudo bem, funcionava blz até decidir páginar estas consultas utilizando:
criteria.setFirstResult(0);
criteria.setMaxResults(10);
…pelo que entendi o Criteria não utiliza um distinct no ato da consulta, ele busca “TODOS” os itens na faixa de valores passada, e somente depois percorre a lista resultate retirando os repetidos, ou seja, é um DISTINCT meio boca !!!
…por exemplo, imaginem que em uma determinada consulta UTILIZANDO DISTINCT retorne 16 ITENS e dai eu quero páginar isso utilizando o trecho de código acima apresentando APENAS os primeiros 10 primeiros …com Criteria não vai funcionar !!! ele vai realizar uma busca SEM DISTINCT de 10 itens, e somente depois vai percorrer essa lista resultante eliminando os objetos iguais, se nesses 10 ITENS apenas 2 forem diferentes ao invés de a paginação me retornar os 10 registros esperados, ela so retorna 2 :? !!!
…não sei se ful claro o suficiente, mas o que queria era saber se existe alguma maneira de FORÇAR a utilizacao de um DISTINCT REAL com paginação para o Hibernate 3 , tem muuuuuiiittttoo código escrito e alterar toda a estrutura de busca pra QUERY manual vai ser Ph!!!
…se não fui claro o suficiente postem algum comentário que tento detalhar melhor, se alguém tem alguma idéia de como resolver isso, qualquer ajuda é muito bem vinda !!!
…valeu gente, bom trabalho a todos !!!