問題描述
<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