mybatis的resultMap部分映射字段失败

发布时间 2023-03-26 21:24:09作者: HainChen

出现这种情况,一般是sql语句多表查询时,返回的字段出现重复情况,比如a对象分别有handle_status属性,和b嵌套对象,但是b对象里面也有handle_status属性,两张表进行关联查询,并且要求同时显示handle_status字段时,如下图所示,虽然嵌套对象的属性后面加了(1)但是这是软件自带的辅助显示,实际查询还是相同的名称。

然后resultMap进行映射handle_status字段时,嵌套对象里面的handle_status属性会被最外层的handle_status属性覆盖掉。
解决办法如下图,把sql语句嵌套对象的handle_status添加前缀,我这里分别演示update_time和handle_status属性比较,update_time属性没有添加前缀,自然会被外层的update_time覆盖掉。

上图左边是外层对象,右边是嵌套对象,左边的sql语句给handle_status字段重命名为lt_handle_status,所以右边嵌套对象的column需要设置为lt_handle_status。