Total row count for pagination using JPA Criteria API

后端 未结 4 2070
深忆病人
深忆病人 2020-12-02 15:46

I am implementing \"Advanced Search\" kind of functionality for an Entity in my system such that user can search that entity using multiple conditions(eq,ne,gt,lt,like etc)

4条回答
  •  执笔经年
    2020-12-02 16:34

    Why don't you just use count?

    CriteriaBuilder builder = em.getCriteriaBuilder();
    CriteriaQuery cQuery = builder.createQuery(Long.class);
    Root from = cQuery.from(Brand.class);
    CriteriaQuery select = cQuery.select(builder.count(from));
    .
    .
    //Created many predicates and added to **Predicate[] pArray**
    .
    .
    select.where(pArray);
    // Added orderBy clause
    TypedQuery typedQuery = em.createQuery(select);
    typedQuery.setFirstResult(startIndex);
    //typedQuery.setMaxResults(pageSize);
    // here is the size of your query 
    Long result = typedQuery.getSingleResult();
    

提交回复
热议问题