hibernate中如何实现分页?

比如表中有1万条数据,我希望50条一页,如何写
Query query=session.open("select * from com.Cat as cat");
....


Query q = sess.createQuery("from com.Cat as cat");
q.setFirstResult(20);
// 起始条数
q.setMaxResults(50);
// 每页显示50条
List cats = q.list();

好简单啊,多谢
如果我想到取到一次查询的条数,是另外写一个select count(*)函数比较好,还是select * 后,通过query.iterator.size()的一个属性来取比较好

单独写一个sql,然后用iterator比较好。

session.iterator("select count(1) from Cat as c").next()

谢谢 :D