我正在尝试列出名为clients Clients
客户拥有超过10000行。我希望使用单个API将其分页50或100。
在Hibernate中,HQL FROM Clients
返回所有客户端,或者我可以设置最大和限制结果数。
目前,对于API,用户希望正常工作所需的客户端总数。
如何在单个 HQL查询
中执行此操作答案 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;
}
}