自学内容网 自学内容网

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)!