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 テスト データのセットがあります。フロントエンドでは、いくつかの基準でフィルタリングできます。基準の 1 つがdeliveryMode
(express|standard) です。一度に 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()
またはメソッド名からのクエリ) を使用する場合、Spring-Data-JPAは?order by
を検出するときに -clause を内部的に使用します。pageable
またはその逆: ?order by
を使用する場合、各カスタム クエリに -clauseを追加する必要がありpageable
ますか?