[Hibernate] Dúvida setMaxResults() e setFirstResult()
5 respostas
B
bruno_cobra
Bom dia galera.
Numa minha aplicação, utilizo os métodos setMaxResults() e setFirstResult() para criar a paginação de uma consulta que retorna em torno de 3 mil registros.
Hoje acabou surgindo uma dúvida na empresa: quando utiliza-se esses métodos, o Hibernate guarda os 3 mil registros e mostra-os de acordo com o valor dos métodos (indo somente uma vez ao banco) ou acaba indo toda vez ao banco para pegar somente os registros necessários?
No caso de utilizar o: setMaxResults() => Que seta o numero máximo de resultados a retornar
e o setFirstResult() => Que seta a posição do primeiro resultado a retornar
Acredito eu, que ele busca de acordo com o que foi setado, indo mais de 1x no banco !!
B
bruno_cobra
Pois é, cara, era isso que eu pensava inicialmente.
No entanto, fiquei com a dúvida pois acho que isso não é possível no Oracle. No MySQL com certeza seria isso, visto que existem as propriedades LIMIT e OFFSET, que fazem exatamente o mesmo. No Oracle, entretanto, só é possível simular o LIMIT (através do ROWNUM), mas não o OFFSET (até onde sei).
Por isso acho que ele deve ir no banco uma vez, guardar todos os registros, e aí “brincar” com os parâmetros que passamos… O que acham?
J
javax.skol
Cara funciona sim…
Se não, cole o Stack trace aqui
B
bruno_cobra
psyltrance:
Cara funciona sim…
Se não, cole o Stack trace aqui
Sim, eu sei que funciona… minha dúvida é saber como ele faz.