我正在使用Datatables jQuery 插件来显示订单位置列表。在调试我的应用程序时,我偶然发现了以下不一致之处。
为了检索数据,我使用@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。当翻阅页面时,仅express
显示 2 个。当我明确过滤时,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()
查询还是来自方法名称的查询——Spring-Data-JPAorder by
在检测到pageable
? 或相反:order by
当使用pageable
?