Реализация подкачки страниц результата в в спящем режиме (получение общего количества строк)

Ну, вам придется делить на ноль, что вы не можете сделать, поэтому я думаю, что большинство языков будет иметь какое-то значение NaN.

Ссылки:

  • XNA
  • Apple (вы также должны выбрать произвольное направление для вектора)
  • Blender (с использованием Python)

10
задан flybywire 21 October 2009 в 11:45
поделиться

4 ответа

Вы можете использовать Query.setMaxResults (int results) и Query.setFirstResult (int offset).

Редактирование тоже: нет способа узнать, сколько результатов вы получите. Итак, сначала вы должны запросить "select count (*) ...". Немного некрасиво, ИМХО.

15
ответ дан 3 December 2019 в 17:20
поделиться

Вы должны выполнить отдельный запрос, чтобы получить максимальные результаты ... и в случае, когда между моментом A первого раза клиент выдает запрос на подкачку до момента B, когда выдается другой запрос , если добавляются новые записи или некоторые записи теперь соответствуют критериям, вам нужно снова запросить максимальное значение, чтобы отразить его. Я обычно делаю это в HQL, как это

Integer count = (Integer) session.createQuery("select count(*) from ....").uniqueResult();

для запросов Criteria . Я обычно помещаю свои данные в DTO, как это

ScrollableResults scrollable = criteria.scroll(ScrollMode.SCROLL_INSENSITIVE);
if(scrollable.last()){//returns true if there is a resultset
    genericDTO.setTotalCount(scrollable.getRowNumber() + 1);
    criteria.setFirstResult(command.getStart())
            .setMaxResults(command.getLimit());
    genericDTO.setLineItems(Collections.unmodifiableList(criteria.list()));
}
scrollable.close();
return genericDTO;
8
ответ дан 3 December 2019 в 17:20
поделиться

вы могли выполнить два запроса - запрос типа count (*), который должен быть дешевым, если вы не объединяете слишком много таблиц вместе, и второй запрос с установленными ограничениями. Тогда вы знаете, сколько элементов существует, но берете только те, которые просматриваются.

2
ответ дан 3 December 2019 в 17:20
поделиться

Я лично считаю, что вам следует обрабатывать подкачку страниц во внешнем интерфейсе. Я знаю, что это не так эффективно, но, по крайней мере, это было бы менее подвержено ошибкам.

Если бы вы использовали счетчик (*), что произойдет, если записи будут удалены из таблицы между запросами определенной страницы? Так многое может пойти не так.

-2
ответ дан 3 December 2019 в 17:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: