HQL通用分页
HQL分页的思路:
- HQL传过来,拼接countHql
- 给命名参数赋值(hibernate 5.0 以后占位符?基本不用了)
- pageBean setTotal(设置符合条件的总页数)
- 查询你需要的结果集
命名参数赋值
/**
* 给命名参数赋值
*
* @param query 预定义参数
* @param map 接受参数
*/
public void setParameters(Query query, Map<String, Object> map) {
if (map == null || map.size() == 0)return;
Object values;
for (Map.Entry<String, Object> entry : map.entrySet()) {
values = entry.getValue();
if (values instanceof Collection) {
values = query.setParameterList(entry.getKey(), (Collection) values);
} else if (values instanceof Object[]) {
values = query.setParameterList(entry.getKey(), (Object[]) values);
} else {
values = query.setParameter(entry.getKey(), values);
}
}
}
接受sql,拼接countHql语句
/**
* 拼接HQL countHql
* FROM bas_dict where 1=1 bac_dict like :bsc_dict
* select count(*) ForM bas_dic