有什么是使用Rest api进行分页数据库的更好方法

时间:2017-03-31 07:18:11

标签: database hibernate hql

我正在尝试列出名为clients Clients

的表中注册用户的所有信息

客户拥有超过10000行。我希望使用单个API将其分页50或100。

在Hibernate中,HQL FROM Clients返回所有客户端,或者我可以设置最大和限制结果数。

目前,对于API,用户希望正常工作所需的客户端总数。

如何在单个 HQL查询

中执行此操作

1 个答案:

答案 0 :(得分:0)

必填参数:

  • int page - >页码,

  • int recordePerPage - >每页需要的记录,在你的情况下它会 50或100 @return:如果没有结果,则为null,如果结果返回带有分页的clint列表。

public List getAllClintWithPagination(int page,int recordePerPage){

        session = HibernateUtil.getSessionFactory().getCurrentSession();
        Transaction tr = null;
        try {
            tr = session.beginTransaction();
            Criteria cr = session.createCriteria(Clint.class);
            cr.setFirstResult((page - 1) * recordePerPage);
            cr.setMaxResults(recordePerPage);
            List<Clint> clintAll = cr.list();
            tr.commit();

            if (clintAll.isEmpty()) {
            if (log.isDebugEnabled()) {
                log.debug("clint are not exist");
            }
            return null;
            } else {

            return clintAll;
            }
        } catch (RuntimeException ex) {
            log.error(ex);
            if (tr != null) {
            tr.rollback(); // roll back the transaction due to runtime error
            }
            return null;
        }
    }