[Hibernate] Dúvida setMaxResults() e setFirstResult()

5 respostas
B

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?

Utilizo Oracle.

Aguardo suas opiniões… valeu!

5 Respostas

J

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

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

Cara funciona sim…
Se não, cole o Stack trace aqui

B

psyltrance:
Cara funciona sim…
Se não, cole o Stack trace aqui

Sim, eu sei que funciona… minha dúvida é saber como ele faz.

J

Ah tah…
Veja o sql que ele gera !!
:smiley:

Criado 20 de novembro de 2008
Ultima resposta 20 de nov. de 2008
Respostas 5
Participantes 2