JPA実装ページング

2390 ワード

JPA実装ページング
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