Pessoal, estou precisando retornar uma lista ordenada de forma randomica. Ja vi que o sql suporta isso com order by rand() e vi na api do hibernate que ele suporta essa funcao tb, mas queria usar ela com Criteria e não com HQL. Alguém sabe como fazer? To procurando aqui mas não acho.
Eu tinha dado uma olhada tb, ja tinha até criado a classe que herdava, mas tava ainda pensando com faria, pois não tinha o conhecimento que vc postou. vou testar sua dica, e posto aqui o resultado. Eu tava olhando os dialetos, e usando rand funciona para mysql,SqlServer entre outros. O que lembro que não rola, era o PostGreSQL
A
alots_ssa
Massa, funcionou. Valeu pela ajuda Lipe, quando vc chama o getFunctions().get(“rand”) ele ja aplica a funcao na query que vai ser gerada é? bem legal isso
_fs
Hm, não aplica nesse momento não.
A linha de código que você indicou apenas acessa as funções registradas pelo dialect. Dê uma olhada nas classes filhas de Dialect para entender melhor.
Fico feliz que funcionou, mas lembre-se que a função não é portável.
A
alots_ssa
Blz, eu to sabendo que não é portavel, mas no momento ajuda e muito. Eu dei uma olhada nos dialects e vi que a funcao ta registrada lá. E fica legal, pq agora quando quiser aplicar uma ordenação mais diferente já tenho o caminho.