Hibernate

前几天,领导交给我一个bug,让我解决.
恩...............

第一天

跟了一天的代码,没发现原因!!!

第二天

没办法,去看代码提交记录....
发现有人在相关业务添加了新的字段.于是去该字段所在的定义好了的bean类中去查看.第一次,未发现啥异常.

第三天

坑啊!找到了原因,原来新加大的字段在其本模块调用没问题,但在另一个模块批量配置便出现问题!于是去找两处业务的逻辑差别.发现本业务该字段无论如何都会赋值.而bug处业务并不包含该字段赋值操作,那么也就是说该字段值是null.但是null的情况为何会导致全部无法配置呢?

问题找到了.真的是坑.
原来bug处该段业务sql是使用hibernate,通过传参内部拼接sql.所以,进入框架查看,发现底层参数是用过StringBuilder拼接而成!
但是!!!当StringBuilder拼接的字符串如果有null值的话(也就是append(null))会导致整个stringBuilder值为null!!!!!!!!!!!!!1
啊啊啊啊啊啊啊啊啊啊啊,苍天啊!
这些框架啊.还是完整的写写sql好啊!
所以,很多框架考虑的也是不全啊.
那么,还有谁可以信任呢?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容