今天在执行业务的时候发现在一次查询时, 查询出当一个字段值为null时,封装成Map类型返回的对象则不存在该值
如:
<select id="getUserDetail" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
USER_ID AS userId,
MOBILE AS mobile,
NAME AS name
FROM BC_USER_T
WHERE USER_ID = #{_map.userId}
</select>
根据条件查询时, 如果该条数据的MOBILE列为NULL, 则返回的Map对象里不会有"mobile",这个key, 返回给前端则为undefined而不是null.使得前端报错.
而这样子的情况,只要在Application.properties配置文件里.加入mybatis.configuration.call-setters-on-nulls=true就可以了。主要意义就是配置SQL就算列是null也会进行set操作。