Boa tarde ninjas do GUJ, tudo bom?
Tenho uma situação que estou em dúvida qual a melhor estratégia usar e gostaria da opinião de vcs. Explico:
Cenário: Java6, VRaptor3, Hibernate3, Jboss.
Causo: Preciso exibir produtos na minha home de forma aleatória. Mas são muitos itens (+ de mil) e podem crescer mais e mais.
Como acho para esse caso a paginação do hibernate onerosa, pensei em fazer a paginação no lado do server. Segue o pseudo algoritmo:
1 - busco todos os produtos registrados por ordem de data.
2 - guardo essa lista na sessão;
Em seguida sempre que alguém solicitar a última lista de itens via ajax (normalmente de 10 em 10, pro html ficar leve);
1 - recupero a lista de produtos da sessão;
2 - recupero o ultimo index da lista de produtos da sessão. (se não existir, determino como sendo zero);
3 - faço listaDeProdutosDaSessão.sublist(index, 10);
4 - altero o index do inicio da lista (index +=10) e guardo o novo index na sessão;
5 - tenho uma verificação onde, quando percebo que cheguei ao final da lista, recarrego toda a lista de produtos do banco de dados novamente //isso é importante, para trazer novos itens.
Minha dúvida é:
Para esse cenário, qual é a estratégia menos ruim?
a: guardar a lista e index na sessão, como eu já estou fazendo.
ou b: fazer uma lista e index statico?
O que vcs acham/sugerem?
Espero ter conseguido explicar minha dúvida.
Agradeço antecipadamente.