Galera, detectei algo que crieo eu seja um bug. Vejam so, se eu faço uma consulta simples usando HQL ou Criteria do tipo:
certo, isso me retorna os registros ordenados por nomTipoRua, ai os registros vem nessa ordem:
79 49 77 1 86 85 38 62 88 87 (Esse numeros é a chave primaria da tabela Rua)
Veja que tem 10 registros ae, agora se eu pagino isso, pedindo de 0 a 5, ou seja:
query.setFirstResult(0);
query.setMaxResults(5);
usando o mesmo hql, olha a sequencia q eu tenho:
86 77 1 49 79
Nada haver isso, deveria vim: 79 49 77 1 86
Pq isso acontece? Se nao é um bug, o q eu estou fazendo de errado? Agradeço a ajuda desde já
Abraços
Os elementos esperados estão vindo, só não estão ordenados.
Na verdade nao vem em ordem nenhuma, se eu listar todos os registro sem paginacao, a ordem eh diferente do q eu mandar pegar todos usando paginacao. Dando o order by fica mais diferente ainda. A verdade é q o retorno da paginacao ta errado. Tem hora q os elementos se repetem em uma paginacao pra outra. Totalmente bugado.
Olha so, fiz uma paginacao de 0 a 10 os resultados foram:
85 86 77 49 1 79 1 84 88 68
Depois de 10 a 15
70 84 88 68 66
Veja que o registro 88, 84 e 68 se repetiram, ou seja, os 3 ultimas da ultima paginacao apareceu em uma sequencia nada haver. A consulta eh a mesma, so mudou a paginacao.
Cara eu estou com o mesmo problema.
Minha paginação funciona perfeitamente, está trazendo os dados paginados corretamente, porém quando eu uso alguma ordenção que é parâmetro que vem do Datatables para utilizar na minha query, apesar de colocar os valore corretamente e inclusive mostrar no log a instrução correta, os dados não vem ordenados corretamente, é muito estranho e já tem alguns dias que estou me batendo com isso.
Alguém tem alguma ideia?
Obrigado
Caramba, isso faz muito tempo cara, rs…
Mais eu lembro deste problema, era um bug mesmo no dialect do Oracle, eu nao sei se esse bug ainda existe pois a muito tempo nao uso oracle, uso postgres, mais eu resolvi sobrescrevendo o dialect do oracle e colocando a forma correta de fazer paginação, porque o oracle nao tem paginação nativa, vc tem que fazer uma subquery que eu nao tenho mais ela aqui atualmente. Você tambem está usando o Oracle? Se sim pode ser que seja o mesmo problema.
Eu sei que faz tempo kkk, mas como tive esse problema agora, estava pesquisando se alguém passou pelo mesmo problema que eu e achei esse post, então resolvi perguntar
Eu estou utilizando o oracle sim, mas de qualquer forma vou continuar dando uma pesquisada
Obrigado
Entao o problema provavelmte eh o mesmo, dialect bugado. Procura uma forma de fazer paginacao no oracle e testa ela pra ver se da os resultados corretos. Se sim tu sobre carrega a classe do dialect do oracle e faz o ajuste no metodo de paginacao, eh bem simples.
Só para avisar que eu resolvi meu problema.
A query estava correta, o que estava acontecendo é que os dados dessa query eram jogado para um List<T> e inspecionando os objetos estavam todos ordenados, o detalhe erra que tinha uma outra rotina que faz um trabalho em cima dessa lista e jogava tudo para um Collection, porém o Collection não mantem a ordem.
Bom, o meu problema era isso
Obrigado