在我的应用程序中,我只需要在200中获取20条记录。以前我从数据库获取所有记录,并且每当用户输入页码或单击导航选项卡用户时,最初只显示第一页中的前20条记录可能会得到另外20条记录。实现休眠分页
但是现在我只需要从数据库中只取得20条记录,并且还有总记录数,然后我只能根据记录总数显示页码。只要在相应的页码用户点击则只有相应的记录将需要被击中数据库
我是新来的休眠,这就是为什么我问这个问题
进账显示在我的应用程序中,我只需要在200中获取20条记录。以前我从数据库获取所有记录,并且每当用户输入页码或单击导航选项卡用户时,最初只显示第一页中的前20条记录可能会得到另外20条记录。实现休眠分页
但是现在我只需要从数据库中只取得20条记录,并且还有总记录数,然后我只能根据记录总数显示页码。只要在相应的页码用户点击则只有相应的记录将需要被击中数据库
我是新来的休眠,这就是为什么我问这个问题
进账显示分页可以用下面的实现接口的两种方法Query
。
query.setFirstResult(2);
query.setMaxResults(4);
setFirstResult(INT startingRecordsFrom): 通过这种方法,我们可以设置结果查询是从记录开始的帮助。
setMaxResults(int maxRecords): 借助此方法,我们可以设置查询中的最大结果。
假设您有100条记录,并且您希望仅检索10条记录。你的代码应该是这样的
final int pageSize =10;
String hql = "FROM Employee";
Query query = sess.createQuery(hql);
query.setFirstResult(updatedStartIndex);
query.setMaxResults(pageSize);
List<Employee> employees = query.list();
updatedStartIndex = updatedStartIndex +pageSize;
在这里,你必须从某个地方在程序的下一个页面请求维护您updatedStartIndex变量。
希望这是有益
getHibernateTemplate().execute(new HibernateCallback<List<YourObject>>() {
public List<YourObject> doInHibernate(Session session) throws HibernateException, SQLException {
return session.createCriteria(YourObject.class).setMaxResults(resultsPerPage).setFirstResult(offset).list();
}
});
你需要一个计数也能看到多少记录你有。将该数除以resultPerPage并获得页数。偏移量将是currentPage * resultPerPage - resultPerPage;
认为此答案适用于您的问题:http://stackoverflow.com/a/840108/355499 –