关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 16663|回复: 8

[代码生成器] 3.7.1范围查询double字段错误

[复制链接]
发表于 2018-2-7 15:46:35 | 显示全部楼层 |阅读模式

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));
                }

 楼主| 发表于 2018-2-8 09:27:20 | 显示全部楼层
在online模式没有问题
发表于 2018-2-8 09:32:32 | 显示全部楼层
jeecg默认有查询过滤器,不需要自己编码,你的编码应该有问题,可以debug跟踪查看
 楼主| 发表于 2018-2-8 15:20:10 | 显示全部楼层
我试着建立了一个只有一个double型的字段,然后生成代码,也是同样报错。。。
 楼主| 发表于 2018-2-9 15:36:11 | 显示全部楼层
现在找到的解决方法是把字段改成 BigDecimal,页面设置里不勾选查询,生成代码后,在JSP里修改查询语句。
高手能分析一下为什么?
发表于 2018-2-11 09:33:13 | 显示全部楼层
没明白你的这个问题的意思
 楼主| 发表于 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部分有问题,但是不会改……
不知道我说清楚了么。
发表于 2018-2-11 12:33:16 | 显示全部楼层
明白了,收录,我们测试下
发表于 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
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表