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

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章