Paginação - Qual o melhor modo de implementar?

Gostaria saber, através da experiência de vocês, qual o melhor modo de implementar paginação?

Estou utilizando no meu projeto Struts 2 e Hibernate, e gostaria de fazer as paginações via AJAX. Como a DisplayTags e a TableTags (plugin do Struts 2) não consegui integrar AJAX, decidi implementar minha própria solução com DWR, já que a ajaxtags faz tempo que está na versão beta.

Pois bem, estive pesquisando e encontrei 2 formas de implementar a paginação:

  1. Guardando as variáveis de ornenação, página atual, número de registros por página e quantidade de paginas na sessão. Cada vez que adiantasse uma página, seria feita uma consulta ao hibernate com o intervalo atual.

  2. Colocando a lista inteira na sessão junto com o indentificador do último registro lido na lista. Esse modo é mais fácil para integrar com AJAX, já que a lista já está na sessão e só precisa incrementar, decrementar ou ordenar a lista.

Dentre desses 2 modos, qual seria o melhor. Ou existe alguma outra técnica que desconheço?

Outra coisa, é recomendável utilizar AJAX para paginação?

Obrigado a todos.

Olá,

Tudo vai depender de suas necessidades.
Se você tem muitos registros e muitos acessos, colocar todos os dados na sessão pode ser inviável.

Nesse caso acho melhor fazer no banco.

Caso contrário, pode colocar na sessão.

A decisão é sua.

[]´s
Rodrigo