JBoss Seam - Работа с большими данными, возвращаемыми из SQL - PullRequest
0 голосов
/ 29 сентября 2011

Я ищу методы / передовые практики, чтобы справиться с тем, как работает наше веб-приложение.

В настоящее время, когда пользователь ищет поле, он может вернуть более 10000 записей одновременно, которыея трата пропускной способности и памяти.

Есть ли способ ограничить количество возвращаемых строк на основе количества строк, выбранных для отображения.т. е. если на веб-странице пользователь выбирает 100 строк на страницу, то возвращает только 100 строк вместо загрузки всех 10000 сразу, тогда при нажатии следующей страницы будут загружены следующие 100 строк и т. д.

ОБНОВЛЕНИЕ : Текущая реализация извлекает все данные, связывает их с t:datatable и t:dataScroller для навигации по страницам.

Из моего чтения в JFS 1.1 нетобеспечивается разбиение на страницы на стороне сервера (поправьте меня, если я ошибаюсь) и для обеспечения такого механизма мне нужно написать собственный код, такой как http://wiki.apache.org/myfaces/WorkingWithLargeTables

Может кто-нибудь подтвердить, является ли это хорошим решением?Использование RichFaces не вариант.

спасибо

Ответы [ 3 ]

2 голосов
/ 29 сентября 2011

Вы должны выполнить разбиение на страницы на стороне сервера, используя компонент jsf, например, в richfaces:

http://katzmaier.blogspot.com/2010/03/richfaces-server-side-pagination.html

1 голос
/ 29 сентября 2011

Посмотрите на класс entityquery. Этот поддерживает уже нумерацию и сортировку на стороне сервера. Он хорошо работает с простыми данными или таблицами richfaces. Даже jquery datatables поверх простого jsf возможны, если вам нужны легкие вещи.

1 голос
/ 29 сентября 2011

Не могли бы вы использовать компонент Paginator для управления отображением соответствующего количества записей?

Если вам нужно ограничить количество возвращаемых строк, это можно указать как часть синтаксиса запроса.

...