Я использую плагин jQuery Datatables, чтобы отобразить список ордеров. При отладке моего приложения я наткнулся на следующее несоответствие.Spring-Data-JPA paging
Чтобы извлечь данные, я использовал @Query
-Notation для моего пользовательского запроса:
@Query("select op from OrderPosition " +
"op where op.order.created >= ?1" +
" and op.depot in ?2" +
" and op.order.deliveryAddress.deliveryMode in ?3" +
" and op.pickStatus in ?4 and op.order.id like ?5 ")
Page<OrderPosition> findOrderpositionsByFilterStatus(Date date, List<Integer>depots, List<DeliveryMode> deliveryModes, List<ArticleStatusType> pickStatus, String sSearch, Pageable p);
произошла ошибка заключается в следующем:
У меня есть набор из 81 Orderpositions тестовых данных. В интерфейсе я могу фильтровать по нескольким критериям. Одним из критериев является deliveryMode
(экспресс | стандарт). Я показываю 10 записей за раз. Общее количество доставки express
составляет 6. При прокрутке страниц только 2 express
. При фильтрации на express
явно я получаю все 6.
Когда я добавить какой-то заказ: например
@Query("select op from OrderPosition " +
"op where op.order.created >= ?1" +
" and op.depot in ?2" +
" and op.order.deliveryAddress.deliveryMode in ?3" +
" and op.pickStatus in ?4 and op.order.id like ?5 " +
"order by op.order.id desc")
Page<OrderPosition> findOrderpositionsByFilterStatus(Date date, List<Integer>depots, List<DeliveryMode> deliveryModes, List<ArticleStatusType> pickStatus, String sSearch, Pageable p);
я получаю все 6 из их.
Что привело меня к вопросу:
При использовании не аннотированных запросов - либо общий findAll()
или запросов от метода names- делает Spring-Data-JPA использовать order by
-clause внутри, при обнаружении pageable
? Или наоборот: Должен ли я добавить order by
-clause в каждом из моих пользовательских запросов при использовании pageable
?
Действительно ли это актуально для включения в комплект данных Datatables? Даже если вы обнаружили ошибку, благодаря ей, мне кажется, что JPA/Spring-Data-JPA. – madth3
Вы можете включить журнал, чтобы увидеть сгенерированный sql и проверить его. – study
Можете ли вы отредактировать и опубликовать свое разрешение? Как выглядели ваши запросы и страница? – Blejzer