Paginação de banco

Olá pessoal. Tenho uma aplicação struts/Servlet/Oracle que manipula uma grande quantidade de registros na base de dados. Tem uma tabela por exemplo que tem mais de 190 mil registros. O problema é que na camada de GUI, estou usando o display-tag para mostrar os elementos. Normalmente ao tentar exportar para pdf o conteúdo (quando acima de 7000 registros) há falta de memória e tuda pára, inclusive o Tomcat.

Mesmo implementando filtros nas consultas para diminuir o volume de dados ainda assim haveriam muitos registros. Outra forma seria aumentar a quantidade de memória RAM o problema é que o volume de dados vai continuar aumentando. Já ouvi algo sobre patterns de paginação em banco para consultas muito grandes.

Como posso fazer isto? E ainda como integrar a camada GUI? Alguma outra sugestão? Grato T+

Kra, o problema de usar o display-tag é justamente esse. Ele traz todos os dados e armazena tudo numa coleção.
O que torna o troço muitoooo ruim.
Uma solução kra, seria vc fazer consultas com Fecth. E implementar sua própria paginação, onde vc passa uma coleção menor como: o resultado suficiente para encher duas páginas. E ele só fará uma nova consulta quando ele, por exemplo, clicar para ir para a 3 página. Dai então vc guarda somente a página 3 e 4 na sessão, ou quantas ache neecssário. Mas evite de ficar guardando todas já pasadas, pois quando ir pro final, terá a memória cheia igual.

Esse tipo de implementação chama-se Cache (corrijam-me se etiver errado).

Bom, existe uma implementação de paginação já pronta para isso, mas esqueci o nome agora. Mas nada que uma pergunta para o Oráculo não resolva!

Bom, espero ter lhe ajudado com a idéia. Não sei se era bem isso que queria!

Abraços!

Olá, entendi sua proposta sim. O meu problema está não tanto na carga de objetos para preencher o display-tag, mas no processo de exportação em especial para pdf (csv e xml não dão problema). Acho que o fetch pode ser uma boa solução paleativa. Grato T+

o problema eh q quando vc clica para exportar…ele executa a acao novamente, ou seja, carrega os objetos novamente…todos, e carrega no excel por exemplo, ao inves de na sua pagina

:twisted:

Imagino então que eu tenha que reimplementar a exportação para evitar tal processo, isso?