JEECG入门二

前面有篇关于JEECG项目搭建的文章,这里继续原来的话题

2.:单表增删改查,生成代码生成器生成代码

2.1:如果单表有字段是外键,是不能直接生成代码的,直接自已手动改造一下生成的Entity,这一点不太方面
改造前:


改造后:



 

 2.2:外键后取值“taste00Entity_tasteName”,可以取得到值,但是发现数据查询的时侯出1+N次的查询方式2.3:解决JEECG生成的List查询1+N次的方法

经过代码跟踪,发现最后做数据查询的类是org/jeecgframework/core/common/dao/impl/GenericBaseCommonDao.java。

查询数据列表的方法是org.hibernate.Criteria,Criteria里面的方法setFetchMode能够解决1+N次的查询问题,具体代码如下。

也将把这个代码上报给JEECG,也许在下个版本就会解决这个问题了

       String[] fields = cq.getDataGrid().getField().split(",");
        for (int i = 0; i < fields.length; i++) {
            if (fields[i].indexOf("_") != -1) {
                fields[i] = fields[i].substring(0, fields[i].indexOf("_"));// 外键字段引用名
                //需要查询的关联对象
                criteria.setFetchMode(fields[i], org.hibernate.FetchMode.JOIN);
            }
        }

2.4:关于代码器配置,可能造成整个系统架构的问题

jeecg_config.properties配置文件,里面的jeecg_filed_convert


查看了JEECG关于org.jeecgframework.tag-sources-3.3.2.jar里面的源码

上一个问题2.3取值XXX_XXX是跟据“_”利害反射原理进行取值的

如:jeecg_filed_convert=false,有一张表为XXX_XXX,那么取值的时侯就要这样写XXX_XXX_XXX,这样就取不到需要的值,甚至系统报错。

建议:jeecg_filed_convert=true不要去改,JEECG把这个配置取消掉

 2.5:单页生成的时侯,查看数据报了这个错,JSONObject.fromObject(-->的时侯报的


Json

{'total':4,'rows':[{'state':'closed','id':'1','employeeId':'999','tasteName':'温度','mutex':'1','disMode':'0','lastUpdate':'2013-05-19 15:05:24.0'},{'state':'closed','id':'2','employeeId':'999','tasteName':'甜度','mutex':'1','disMode':'0','lastUpdate':'2013-05-19 15:05:34.0'},{'state':'closed','id':'3','employeeId':'999','tasteName':'加料','mutex':'0','disMode':'0','lastUpdate':'2013-05-19 15:05:49.0'},{'state':'closed','id':'4','employeeId':'999','tasteName':'';\';\','mutex':'0','disMode':'0','lastUpdate':'2013-05-24 18:37:47.0'}]}

原因:'tasteName':'';\';\'里面包含了单引号,查看org.jeecgframework.tag-sources-3.3.2.jar里面的源码,JEECG对对象做了一次转换,将对象封装成字符串,再转成“JSONObject”。

建议:输入框校验不允许输入单引号

 

2.6:datagrid自定义标签对数据字典的引用

例如:dictionary="sex"

猜你喜欢

转载自wqsmd.iteye.com/blog/1999270
今日推荐