hibernate
封装了sql
语句成了hql
,虽然对于多表级联查询显得很麻烦甚至不如sql
,但是其实用惯了的话,对于一些常规数据的查询还是很方便的,比较自动给封装到对象里了,不像sql
那般麻烦。那么下面就解决一下hql分页显示问题,也就是只取结果集中某一段的结果,怎么写呢?
其实很简单,hql
的query
提供了两个方法,一个教setFirstResult()
,一个叫setMaxResults()
,看名字就知道怎么用了。 setFirstResult()
:设置取出的第一条结果的索引,从0开始 ,第几条数据setMaxResults()
:设置取出的数据的最大条数,每页多少条数据
很显然,我要取第2到第3条数据,我只需要设置:query.setFirstResult(1).setMaxResults(2).....
就可以啦
Query query = session.createQuery(hql);
query.setFirstResult(start); m-1
query.setMaxResults(pageSizeI); m-n+1
List<Person> list = query.list();
return list;