在MyBatis中,我们经常会遇到返回类型resultType = "map"的情况,而在返回的map中,经常会有字段是null的,今天,我们就来分析一下如何处理null的问题
1. map中某个字段返回null,其余字段有值时
某个字段为null时,将不返回该字段,例如:
("a" : 1, "b" : 2, "c" : null, "d" : 4)
则会返回
("a" : 1, "b" : 2, "d" : 4)
如果想让字段c正常返回,则需要加上以下语句
spring项目
<setting name="callSettersOnNulls" value="true">
springboot项目
mybatis.configuration.call-setters-on-nulls=true
加上以上配置之后,则会返回如下:
("a" : 1, "b" : 2, "c" : null, "d" : 4)
2. map中某一行整体返回null
当某一行整体返回null时,map将会返回null,例如:
("a" : null, "b" : null, "c" : null, "d" : null)
则会返回
null
如果需要正常显示每个字段为null,则需要以下配置
spring项目
<setting name="returnInstanceForEmptyRow" value="true">
springboot项目
mybatis.configuration.return-instance-for-empty-row=true
加上以上配置之后,则会返回如下:
("a" : null, "b" : null, "c" : null, "d" : null)