mybatis或mybatisPlus查询字段值为null时,不会被映射返回的问题
mybatis或mybatisPlus查询字段值为null时,不会被映射返回的问题
·
背景:最近在做公司的OA系统,采用前后端分离的开发模式,在做查询日程详情接口时,需要多表关联查询一下,我懒得再封装封装结果集的DTO,而是直接用map封装数据,查询结果就出现问题了...
这是dao层的方法
Map<String,Object> selectScheduleById(Long id);
这是我的sql
select s.id,s.startPreRemind,s.endPreRemind,s.annexUrl,s.createPersonId, u.realName,s.createTime,s.annexFileName
from oa_schedule s
inner join oa_schedule_type st on s.scheduleTypeId = st.id
inner join oa_user u on s.createPersonId = u.id
标红的annexFileName就是被mybatis自动忽略的字段,因为annexFileName的值为null,当被封装成map时就会被mybatis自动忽略,这是因为mybatis的默认配置:字段值为null时,就不映射该字段的值。
<configuration>
<settings>
<setting name="callSettersOnNulls" value="false"/>
</settings>
</configuration>
解决:
改成 true 即可。
springBoot中可以这样做:
mybatis-plus:
configuration:
#设置当查询结果值为null时,同样映射该查询字段给map。
call-setters-on-nulls: true
更多推荐
已为社区贡献9条内容
所有评论(0)