Hibernate分页查询代码:
Query query = getSession().createSQLQuery(sql).addEntity("app", Application.class)
.addEntity("g", Gameversion.class);
query.setParameter(0, id);
query.setParameter(1, ua);
query.setParameter(2, platform);
PageControl pc = PageThreadLocal.getPagination();
query.setMaxResults(pc.getPagesize());
query.setFirstResult((pc.getPageno() - 1) * pc.getPagesize());
List<Object[]> resultlist = query.list();
代码基于sql查询,
createSQLQuery(sql)
返回一个SQLQuery。
.addEntity("app", Application.class)
.addEntity("g", Gameversion.class);
表示查询返回的结果是Application和Gameversion两个对象组成的数组,"app"和"g"表示sql语句中对应表的别名。
PageControl pc = PageThreadLocal.getPagination();
这端代码从ThreadLocal中获取当前线程的PageControl对象。
最后通过调用:
query.setMaxResults(pc.getPagesize());
query.setFirstResult((pc.getPageno() - 1) * pc.getPagesize());
设置本次查询的记录范围