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

本文介绍了解决Jeecg 3.7版本中表单范围查询时遇到的Double类型转换问题的方法。通过对工具类HqlGenerateUtil的installHqlJoinAlias方法进行修改,增加对Double类型的判断来解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用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_);

“`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值