这两天,被分配修改了几个bug, 修改的过程比较有趣,所以总结出来。
一, 需要在原来的查询的基础上,再增加一个查询的条件,如按上级部门查询
1. 修改html的页面,在查询栏,增加一个录入框
2. 修改页面控制的js文件
3. 修改QueryAction中的setQueryCondition私有方法,加入parentOrg的条件
4. 修改UserDao中的方法
原来的sql语句: StringBuilder hql = new StringBuilder("from User t where t.delFlag=false");
分析sql之后,认为对于部门的查询条件,少一个部门的关联表,对hibernate的hql的并不是非常熟,于是参考这个Dao中,其它的查询方法, 修改这个hql
StringBuilder hql = new StringBuilder("from CenterUser t inner join t.parentOrg o where t.delFlag=false");
接着修改,引用hql的另一个地方, 增加insert部分的代码。
hql.append(" order by t.belongTo.id asc").insert(0, "select t ");
最后,从页面开始调试,增加的部门的查询条件。
[b]其实只是主线 mainline 增加了一个条件 add condition 而已,不是extendline, 更不是inline [/b]
二, 有一个数据查询,有重复数据。
在后台找到这个sql, 感觉sql有问题,但是sql比较复杂。看了两遍,始终不知道sql中什么地方出错。
后来,突然想起,系统中, 还有一处填报数据的翻页功能,与它类似。马上找到这个功能的sql, 把这个sql中的一部分,复制出来,对比之后找到了原因,原来数据查询的sql中少了一个条件。加上之后,调试就可以通过了。
[b]其实只是相同逻辑的对比而已[/b]
三, 还有一个错误,在增加某条数据时,一直提示名称重复。
检查之后,在页面的校验中,从后台返回的数据格式,以及含义。没有注意到,使得校验条件通过。这段代码是移植过来的。在这个过程中,没有注意到客户端和服务器端传递的参数之间的差别,导致逻辑出错。这也是我需要注意的地方。
[b]这是一种习惯或者素质,需要在开发的过程中培养[/b]
一, 需要在原来的查询的基础上,再增加一个查询的条件,如按上级部门查询
1. 修改html的页面,在查询栏,增加一个录入框
2. 修改页面控制的js文件
search : function() {
Users.config.param.loginName = document.getElementById("loginname").value;
Users.config.param.name = document.getElementById("name").value;
Users.config.param.parentOrg = document.getElementById("parentOrg").value;
Users.init();
}
3. 修改QueryAction中的setQueryCondition私有方法,加入parentOrg的条件
4. 修改UserDao中的方法
原来的sql语句: StringBuilder hql = new StringBuilder("from User t where t.delFlag=false");
分析sql之后,认为对于部门的查询条件,少一个部门的关联表,对hibernate的hql的并不是非常熟,于是参考这个Dao中,其它的查询方法, 修改这个hql
StringBuilder hql = new StringBuilder("from CenterUser t inner join t.parentOrg o where t.delFlag=false");
接着修改,引用hql的另一个地方, 增加insert部分的代码。
hql.append(" order by t.belongTo.id asc").insert(0, "select t ");
最后,从页面开始调试,增加的部门的查询条件。
[b]其实只是主线 mainline 增加了一个条件 add condition 而已,不是extendline, 更不是inline [/b]
二, 有一个数据查询,有重复数据。
在后台找到这个sql, 感觉sql有问题,但是sql比较复杂。看了两遍,始终不知道sql中什么地方出错。
后来,突然想起,系统中, 还有一处填报数据的翻页功能,与它类似。马上找到这个功能的sql, 把这个sql中的一部分,复制出来,对比之后找到了原因,原来数据查询的sql中少了一个条件。加上之后,调试就可以通过了。
[b]其实只是相同逻辑的对比而已[/b]
三, 还有一个错误,在增加某条数据时,一直提示名称重复。
检查之后,在页面的校验中,从后台返回的数据格式,以及含义。没有注意到,使得校验条件通过。这段代码是移植过来的。在这个过程中,没有注意到客户端和服务器端传递的参数之间的差别,导致逻辑出错。这也是我需要注意的地方。
[b]这是一种习惯或者素质,需要在开发的过程中培养[/b]