、しかし、自明です。あなたが基準のクエリを持っている場合
public Long getCount(Pageable pageable) {
Query q = session.createQuery("Select count(t) From TableClass t where t.city = 'NY'");
Long cnt = (Long) q.uniqueResult();
return cnt;
}
public List<TableClass> findAll(Pageable pageable) {
Query q = session.createQuery("From TableClass t where t.city = 'NY'");
q.setFirstResult(start);
q.setMaxResults(length);
List<TableClass> tableClasslist = q.list();
return tableClasslist;
}
は同様に、それが効果的に同じことだ:
public Long getCount(Pageable pageable) {
Criteria c = session.createCriteria(TableClass.class);
c.setProjection(Projections.rowCount());
Long cnt = (Long) c.uniqueResult();
return cnt;
}
public List<TableClass> findAll(Pageable pageable) {
Criteria c = session.createCriteria(TableClass.class);
c.setParameter("city","NY");
c.setFirstResult(start);
c.setMaxResults(length);
List<TableClass> tableClasslist = c.list();
return tableClasslist ;
}
Hello @OlivierはPageagleを持っています。私は 'offset'をどこに指定するのかわかりません。' PageRequest'は 'page'と' size'しか受け付けません。なぜ私は 'offset * 'を得るために' page * size'をしなければならないのか分かりません。 'page'ではなく' offset'を使う方法はありますか? –
'PageRequest'が' page'と 'size'を' offset'だけ公開している理由は 'size'が必要なので十分ではありません。ページネーションの概念は、通常、ここで表現しているページ中心のデータビューを意味します。しかし、オフセットやサイズで動作する 'Pageable'の独自の実装を思いつくことはできません。 –
Query APIでPagivationを使用するにはどうすればよいですか? –