背景:最近在做公司的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