jeecg 3.7 解决Double 类型范围查询出现类型转换问题

在使用jeecg3.7时,为了实现表单的范围查询,发现使用Double类型的数据时,出现了类型转换问题,通过查询资料和断点,在工具类HqlGenerateUtil中的installHqlJoinAlias方法中发现,在组合查询条件过程中,对Integer、BigDecimal、Short、Long、Float进行判断,并将Objecg类型转换为该类型,唯独缺少对Double类型的判断,在这里只要仿照其余类型,添加上对Double的判断即可解决之一问题。

java

                    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);
                        //少写了一个double
                    } else if("class java.lang.Double".equals(type)) {
                        if(!"".equals(beginValue)&&null!=beginValue)
                            beginValue_ = Double.parseDouble(beginValue);
                        if(!"".equals(endValue)&&null!=endValue)
                            endValue_ = Double.parseDouble(endValue);
                    } else{
                         beginValue_ = beginValue;
                         endValue_ = endValue;
                    }
                    ObjectParseUtil.addCriteria(cq, aliasName,
                            HqlRuleEnum.GE, beginValue_);
                    ObjectParseUtil.addCriteria(cq, aliasName,
                            HqlRuleEnum.LE, endValue_);

“`

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章