[RESOLVIDO]..comportamento Criteria.DISTINCT_ROOT_ENTITY com paginação

…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 !!!

http://forum.hibernate.org/viewtopic.php?t=941669&postdays=0&postorder=asc&start=0
http://www.guj.com.br/posts/list/57493.java

1 curtida