分页查询count方法-删除hql中的order by子句
分页查询count方法-删除hql中的order by字句
/** * 获取查询数据总数 * * @param hql * @param params * @return 结果集总数 */ public int count(String hql, Map<String, Object> params) { // Query q = this.createQuery(hql, params); // ScrollableResults scroll = q.scroll(); // scroll.last(); // return scroll.getRowNumber() + 1; // replaceAll忽略大小写: (?i) hql = hql.replaceAll("(?i)order\\s+(?i)by\\s+[^()]*", ""); StringBuilder sb = new StringBuilder(); sb.append("SELECT COUNT(*) "); sb.append(hql.substring(hql.toLowerCase().indexOf("from"))); Object o = this.createQuery(sb.toString(), params).uniqueResult(); return o == null ? 0 : Integer.parseInt("" + o); }
---
posted on 2021-04-01 16:12 wenbin_ouyang 阅读(230) 评论(0) 编辑 收藏 举报