xby 发表于 2018-2-7 15:46:35

3.7.1范围查询double字段错误


java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double
而使用single查询则没有问题
是因为组合查询这里都处理成了整型么?
                String query_equNetweight_begin = request.getParameter("equNetweight_begin");
                String query_equNetweight_end = request.getParameter("equNetweight_end");
                if(StringUtil.isNotEmpty(query_equNetweight_begin)){
                        cq.ge("equNetweight", Integer.parseInt(query_equNetweight_begin));
                }
                if(StringUtil.isNotEmpty(query_equNetweight_end)){
                        cq.le("equNetweight", Integer.parseInt(query_equNetweight_end));
                }

xby 发表于 2018-2-8 09:27:20

在online模式没有问题

admin 发表于 2018-2-8 09:32:32

jeecg默认有查询过滤器,不需要自己编码,你的编码应该有问题,可以debug跟踪查看

xby 发表于 2018-2-8 15:20:10

我试着建立了一个只有一个double型的字段,然后生成代码,也是同样报错。。。

xby 发表于 2018-2-9 15:36:11

现在找到的解决方法是把字段改成 BigDecimal,页面设置里不勾选查询,生成代码后,在JSP里修改查询语句。
高手能分析一下为什么?

admin 发表于 2018-2-11 09:33:13

没明白你的这个问题的意思

xby 发表于 2018-2-11 11:28:29

就是说在online表单中一个字段设置为Double数据类型,在页面设置中设置为查询并且是范围查询,这样生成代码后,用这个字段查询,eclipse报错:
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double
但是在online表单的功能测试中是没有问题的。
现在我把这个字段的double类型改成BigDecimal类型,并在页面设置中不点选查询选项,再生成代码。然后在list页面将datagrid中的行属性加上query=true,querymode=group,这时候再查询就没有问题了。
我感觉是control部分有问题,但是不会改……
不知道我说清楚了么。;P

admin 发表于 2018-2-11 12:33:16

明白了,收录,我们测试下

fly1206 发表于 2018-3-16 18:28:59

类 HqlGenerateUtil.java方法installHqlJoinAlias
增加
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);
                                                }
然后把代码生成的controller中方法datagrid
自定义追加查询条件 对应字段的处理给去掉,或者类型转换 Integer 改成Double
页: [1]
查看完整版本: 3.7.1范围查询double字段错误