前几天,领导交给我一个bug,让我解决.
恩...............
第一天
跟了一天的代码,没发现原因!!!
第二天
没办法,去看代码提交记录....
发现有人在相关业务添加了新的字段.于是去该字段所在的定义好了的bean类中去查看.第一次,未发现啥异常.
第三天
坑啊!找到了原因,原来新加大的字段在其本模块调用没问题,但在另一个模块批量配置便出现问题!于是去找两处业务的逻辑差别.发现本业务该字段无论如何都会赋值.而bug处业务并不包含该字段赋值操作,那么也就是说该字段值是null.但是null的情况为何会导致全部无法配置呢?
问题找到了.真的是坑.
原来bug处该段业务sql是使用hibernate,通过传参内部拼接sql.所以,进入框架查看,发现底层参数是用过StringBuilder拼接而成!
但是!!!当StringBuilder拼接的字符串如果有null值的话(也就是append(null))会导致整个stringBuilder值为null!!!!!!!!!!!!!1
啊啊啊啊啊啊啊啊啊啊啊,苍天啊!
这些框架啊.还是完整的写写sql好啊!
所以,很多框架考虑的也是不全啊.
那么,还有谁可以信任呢?
网友评论