0
测试样例上传不到github,暂时先放这里
简要描述: Student belongsTo Teacher Student belongsTo Grade
belongsTo的时候都设置 setEagerlyType(0)
然后查询的时候同时使用with和hasWhere 这时候的字段会被加两次前缀,导致SQL错误
大致SQL是这个感觉
SELECT `student`.Student.*,teacher.id AS teacher__id,teacher.teacher_id AS teacher__teacher_id FROM `student` `student` INNER JOIN `grade` `Grade` ON `Student`.`grade_id`=`Grade`.`id` INNER JOIN `teacher` `teacher` ON `student`.`teacher_id`=`teacher`.`id` WHERE `Grade`.`grade_name` = 'test'
如果这时候指定了field,并且在field里也指定了字段名,那所有的字段都会被加上两次前缀.
问题大约是在Query类里第787行附近,参数有前缀不由分说的加上了前缀, 如果在这里判断下,如果字段名已经被加上了前缀(字段中含有点号)就跳过该字段加前缀操作,应该就OK了.