hibernate的分页查询
昨天在学习申报系统的业务层源码时,遇到如下一段代码,不明所以,查询后知道以下5行代码是 hibernate的查询分页
SQLQuery queryObj = session.createSQLQuery(hql.toString()); queryObj.setFirstResult((pageIndex) * pageSize); queryObj.setMaxResults(pageSize); queryObj.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); List list = queryObj.list();
ResultTransformer?
Hibernate可以对原生sql 查询使用ResultTransformer。这会返回不受Hibernate管理的实体。如申报系统中的代码:
String sql = "SELECT DISTINCT AYEAR FROM APPYEAR WHERE AKIND=1 ORDER BY AYEAR"; SQLQuery sqlquery = session.createSQLQuery(sql.toString()); sqlquery.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); List years = sqlquery.list();
Transformers.ALIAS_TO_ENTITY_MAP 把输出结果转换成map