ll3231 发表于 2015-12-22 15:22:17

修改jeecg3.5源码从而支持数字类型区间查询

包:package org.jeecgframework.core.extend.hqlsearch;
类:public class HqlGenerateUtil {
方法:private static void installHqlJoinAlias(CriteriaQuery cq, Object searchObj,                        Map<String, TSDataRule> ruleMap,
                        Map<String, String[]> parameterMap, String alias)


修改源码如下142行:
                              } else if (parameterMap != null) {
                                                //支持所有类型数据
                                                Object beginValue_=null , endValue_ =null;
                                                if ("class java.lang.Integer".equals(type)) {
                                                        if(!"".equals(beginValue)&&null!=beginValue)
                                                                beginValue_ = Integer.parseInt(beginValue);
                                                        if(!"".equals(endValue)&&null!=endValue)
                                                                endValue_ =Integer.parseInt(endValue);
                                                } else if ("class java.math.BigDecimal".equals(type)) {
                                                        if(!"".equals(beginValue)&&null!=beginValue)
                                                                beginValue_ = new BigDecimal(beginValue);
                                                        if(!"".equals(endValue)&&null!=endValue)
                                                                endValue_ = new BigDecimal(endValue);
                                                } else if ("class java.lang.Short".equals(type)) {
                                                        if(!"".equals(beginValue)&&null!=beginValue)
                                                                beginValue_ =Short.parseShort(beginValue);
                                                        if(!"".equals(endValue)&&null!=endValue)
                                                                endValue_ =Short.parseShort(endValue);
                                                } else if ("class java.lang.Long".equals(type)) {
                                                        if(!"".equals(beginValue)&&null!=beginValue)
                                                                beginValue_ = Long.parseLong(beginValue);
                                                        if(!"".equals(endValue)&&null!=endValue)
                                                                endValue_ =Long.parseLong(endValue);
                                                } else if ("class java.lang.Float".equals(type)) {
                                                        if(!"".equals(beginValue)&&null!=beginValue)
                                                                beginValue_ = Float.parseFloat(beginValue);
                                                        if(!"".equals(endValue)&&null!=endValue)
                                                                endValue_ =Float.parseFloat(endValue);
                                                }else{
                                                       beginValue_ = beginValue;
                                                       endValue_ = endValue;
                                                }
                                                ObjectParseUtil.addCriteria(cq, aliasName,
                                                                HqlRuleEnum.GE, beginValue_);
                                                ObjectParseUtil.addCriteria(cq, aliasName,
                                                                HqlRuleEnum.LE, endValue_);
                                        }

页: [1]
查看完整版本: 修改jeecg3.5源码从而支持数字类型区间查询