JPA実装ページング
2390 ワード
JPA実装ページング
Jpa自身はすでにページングを実現する基本的なクエリー方法を持っていて、自分でネット上でページングのフロントエンドプラグインを探して、それからJpaでデータをクエリーしてそれにあげます.
ページは現在のページと各ページのサイズをバックグラウンドに渡し、バックグラウンドは次のように処理されます.
もちろん、ページが返す値は、クエリーされたリストに加えて、クエリーされた合計数です.
これで完全にページ分けの需要を満たすことができて、頑張りましょう
転載先:https://www.cnblogs.com/ChickenTang/p/5655405.html
Jpa自身はすでにページングを実現する基本的なクエリー方法を持っていて、自分でネット上でページングのフロントエンドプラグインを探して、それからJpaでデータをクエリーしてそれにあげます.
ページは現在のページと各ページのサイズをバックグラウンドに渡し、バックグラウンドは次のように処理されます.
public List<PsrAnalysisTask> findAnalysisTask(String loginName,
Long analysisTempId,Integer pageIndex, Integer pageSize) {
Query query = null;
query = em.createQuery("select a from PsrAnalysisTask a where a.createdBy=:createdBy and a.analysistempId =:analysistempId ");
query.setParameter("createdBy", loginName);
query.setParameter("analysistempId", analysisTempId);
query.setFirstResult((pageIndex-1)*pageSize);
query.setMaxResults(pageSize);
List<PsrAnalysisTask> as = query.getResultList();
return as;
}
もちろん、ページが返す値は、クエリーされたリストに加えて、クエリーされた合計数です.
@Override
public Integer getTotalCount(String loginName) {
return Integer.valueOf(em.createQuery(
"SELECT COUNT(*) FROM PsrAnalysisTask e WHERE e.createdBy = :createdBy")
.setParameter("createdBy",loginName).getSingleResult().toString());
}
これで完全にページ分けの需要を満たすことができて、頑張りましょう
転載先:https://www.cnblogs.com/ChickenTang/p/5655405.html