首页 > 其他 > 详细

分页查询count方法-删除hql中的order by子句

时间:2021-04-01 18:15:33      阅读:17      评论:0      收藏:0      [点我收藏+]

  分页查询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);
    }

---

分页查询count方法-删除hql中的order by子句

原文:https://www.cnblogs.com/xy-ouyang/p/14606840.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!