以下のコードを使用して、データベースから次の結果ページを取得しようとしています。EclipseLink(JPA 2.1)明示的に必要な結果が返されないクエリ
public Collection<Product> getCategoryProducts(Category selectedCategory, String start) {
Query query = em.createQuery("SELECT p FROM Product p WHERE p.categoryId = :categoryId")
.setParameter("categoryId", selectedCategory)
.setMaxResults(20);
if (null != start) {
query.setFirstResult(Integer.parseInt(start));
}
return query.getResultList();
}
マイ製品テーブルには、各製品がカテゴリに属する約1000行があります。 カテゴリー1のような80種類の商品を選んだ場合、私は20ページの製品でそれぞれ4ページのページを見ることができます。より高いカテゴリIDに属する製品にアクセスしようとすると問題が発生します。私は最初の20の結果しか見ることができませんが、次のページは0の結果を返します。 例えば、カテゴリ15は、id=459 to id=794 where id is the primary key
の範囲の製品を有する。
https://localhost:8181/myapp/category?categoryId=15
からカテゴリページにアクセスしたときに、最初の20個の結果が返されますが、下部のmoreリンクをクリックすると、https://localhost:8181/myapp/category?categoryId=15&start=478
は0の結果を返します。私は何が欠けていますか?