木心

毕竟几人真得鹿,不知终日梦为鱼

导航

分页查询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编辑  收藏  举报