论坛首页 综合技术论坛

JEECG入门二

浏览 6242 次
锁定老帖子 主题:JEECG入门二
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-01-06   最后修改:2014-01-06

前面有篇关于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"

 

2.7:JEECE在线开发,移除或删除的时侯表没有删除干净。

查看hibernate语句操作的表"cgform_head";“cgform_field”,只看到对这张两表进行操作,事实应该不只是这两张表

在数据库里新建一张同名表,再使用在线代码生成器生成,如果表结构和原来的不样,,拉出来是代码还是原来表结构,并不是新表的结构,具体怎么解决,如果有解决方案会再发贴。

暂时解决方案:已经使用在线代码生成器生成表,需要进行修改,直接使用在线代码生成器进行相应的修改。

2.8:在线代码生成,移除的时侯,运行了Ndelete,感觉不太合理

论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics