Mybatis中resultType爲map時,null值的字段不返回問題

問題描述

<select id="getCompanyRoadshow" parameterType="map" resultType="map">
        SELECT
           id,
           name,
           addr
        FROM
           user
         WHERE
           id = #{id}  
    </select>

以上查詢,當addr字段值在數據庫中爲null時,返回的結果如下:

{
"id": 1,
"name": "test"
}

正常我們想要的應該是這樣:

{
"id": 1,
"name": "test",
"addr": null
}

解決辦法

  • null值變成空字符串
SELECT
	id,
	name,
	case when addr is not null
		then addr 
		else  '' 
	end addr
FROM
	user
WHERE
	id = #{id}  
  • 傳統項目配置xml文件中配置:
<settings>
		<!-- 指定當結果集中值爲 null 的時調用映射對象的 setter(map 對象時爲 put)方法 -->
		<setting name="callSettersOnNulls" value="true" />
</settings>
  • springboot項目properties中配置:
mybatis.configuration.call-setters-on-nulls=true

參考文章:https://www.cnblogs.com/ityangshuai/p/12759787.html

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