mybatis-plus解决resultType为java.util.Map不返回空值字段
问题:背景使用返回类型为Map的时候 mybatis默认把空值字段不返回属性。
例如:
<select id="select" resultType="java.util.Map">
select * from user
</select>
上面这个样的java.util.Map返回类型,如果其中有字段为空值,那么该字段是不返回的;
尝试解决:
1.在yml中配置mybatis-plus配置
mybatis-plus:
configuration:
call-setters-on-nulls: true
启动测试,结果发现没有作用,配置文件不生效;
2.既然配置文件不生效就手动添加一个配置;
在执行sql的service类中把该配置添加进去,达到全局只要进这个类就有全局生效;
因为我是动态数据源,有n个数据源,所以是在执行sql的类中添加了配置,如果是固定的数据源也可以在启动的时候添加在初始化里面;
最终添加以下代码,可以解决返回null值的问题;
private final SqlSessionFactory sqlSessionFactory;
@Autowired
public DefaultExecuteService(SqlSessionFactory sqlSessionFactory) {
this.sqlSessionFactory = sqlSessionFactory;
//在构造函数中设置进去
this.sqlSessionFactory.getConfiguration().setCallSettersOnNulls(true);
}
最后,祝您工作顺利,加油。
原文地址:https://blog.csdn.net/qq_36949403/article/details/140280457
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!