关于Hibernate分页类和jdbc的sql分页完美融合
1.先来看这两个核心兄弟方法。
2.再看他们的辅助方法。
3.奉献两个共同方法/** * 去除hql中的order by语句 * * @param hql * @return */private static String removeOrders(String hql) {Pattern p = Pattern.compile("order\\s*by[\\w|\\W|\\s|\\S]*",Pattern.CASE_INSENSITIVE);Matcher m = p.matcher(hql);StringBuffer sb = new StringBuffer();while (m.find()) {m.appendReplacement(sb, "");}m.appendTail(sb);return sb.toString();}private static String removeSelect(final String hql) {final int beginPos = hql.toLowerCase().indexOf("from");return hql.substring(beginPos);}
4.以上方法都包装在了SuperHibernateEntityDao.java中,可看附件。
5.关于Page对象类可查看附件Page.java。
当然,里面没用的业务处理对象及方法都可以删掉。