问题杂记
记录碰到的问题,以后有时间分类整理。
mybatis返回Map
【问题】
mybatis返回类型为java.util.Map的时候,如果该字段为null或者“”,封装返回的Map中会自动去除该字段,因此经常会在Map中取不到值。
【解决办法】
- 在application.yml添加:
mybatis:
configuration:
call-setters-on-nulls: true
- 在application.properties添加:
#当查询数据为空时字段返回为null,不加这个查询数据为空时,字段将被隐藏
mybatis.configuration.call-setters-on-nulls=true
- 在mybatis.xml添加:
<configuration>
<settings>
<setting name="callSettersOnNulls" value="true" />
</settings>
</configuration>
- 在sql里面设置(空值赋空):
IFNULL(test, '') AS test
- 在数据源配置文件中,添加默认配置,如下所示:
//设置默认属性
org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
configuration.setCallSettersOnNulls(true);
sf.setConfiguration(configuration);