我正在尝试在名为客户端Clients
的表中列出注册用户的所有信息
客户端有超过 10000 行。我想用一个 API 按 50 或 100 分页。
在Hibernate中,HQL FROM Clients
返回所有客户端,或者我可以设置最大和限制结果数。
目前对于 API,用户希望正常工作所需的客户端总数。
如何在单个 HQL 查询中执行此操作
必需参数:
-
整数页 ->页码,
-
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;
}
}