控制分页Query有两个方法
setFirstResult(int firstResult):设定从那个对象开始检索。
setMaxResults(int maxResult):设置一次最多能检索出对象的数目。
具体例子如下:
//分页查询
public void pageTest() {
selectUser(3);
}
public void selectUser(int pageSize) {
// TODO Auto-generated method stub
Configuration cfg = null;
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
try {
sf = hibernateUtil.getSessionFactory();
session = sf.getCurrentSession();
ts = session.beginTransaction();
Query query=session.createQuery("from User");
List<User> users =query.list();
int UserCount = users.size();
int pageCount = 0;
pageCount = UserCount / pageSize;
if(UserCount % pageSize != 0) {
pageCount++;
}
for(int i = 0 ; i<pageCount ; i++) {
System.out.println("第 " + (i+1) +" 页");
query.setFirstResult(i*pageSize);
query.setMaxResults(pageSize);
List<User> users1 =query.list();
for(User u:users1) {
System.out.println(u.getName()+"--年龄"+u.getAge());
//u.toString
}
}
ts.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
if(ts != null) {
ts.rollback();
}
}
查询结果如下: