通过Hql、Sql生成Hibernate CountQuery 字符串

当我们在写Hibernate Orm组件的时候,经常会遇到分页查询这种操作,分页查询的原理不在熬述,比较重要的一点是需要计算查询的总数count,大部分人还是采用传统的hql/sql字符串截取或者拼接等方式实现。下面给出的代码是通过字符串模板、正则匹配等方式实现的,直接上代码:

public class QueryTemplateUtil {

 public static final String COUNT_QUERY_STRING = "select count(%s) from %s x";
 public static final String DELETE_ALL_QUERY_STRING = "delete from %s x";

 private static final String COUNT_REPLACEMENT_TEMPLATE = "select count(%s) $5$6$7";
 private static final String SIMPLE_COUNT_VALUE = "$2";
 private static final String COMPLEX_COUNT_VALUE = "$3$6";

 private static final Pattern COUNT_MATCH;

 private static final String IDENTIFIER = "[\\p{Alnum}._$]+";
 private static final String IDENTIFIER_GROUP = String.format("(%s)",
   IDENTIFIER);

 private static final String EQUALS_CONDITION_STRING = "%s.%s = ?";

 stat
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值