遇到一个奇怪的问题,在前端弹出界面中,checkbox没有被选中(而且确实查询出了记录)。图一为错误显示,图二为正确显示。
图一
图二
经调查,因为传回的复数条json记录中有条记录是null,导致所有的json都没有正常解析,只能说框架的纠错能力太差。
而导致null的原因是现在的db中有脏数据,java和js都没有进行null判断。再深入一点可以说是sql写法有问题。
select c.* from TI_M_ROLE_MENU a left join TI_ROLE b ON
a.M_ROLE_ID=b.ID
left join TS_MENU c ON a.M_MENU_ID = c.ID
where a.M_ROLE_ID = #{mRoleId} and a.DATA_STATUS = #{dataStatus} and
b.DATA_STATUS = #{dataStatus}
连续两个left join,select的结果却是右边的表,然后就导致了null。错误往往在不注意不可能中就这样发生了。。。