问题描述
<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