mybatis查询结果为null时,值被默认值替换问题

问题:pojo种设置了一个默认值,当此字段查询结果为空时,字段值变成了默认值0,经过排查发现,mybatis在赋值时并没有调用set方法赋值,而是直接调用get方法,取了默认值

《mybatis查询结果为null时,值被默认值替换问题》

 

问题原因:

    原因是因为mybatis在给map赋值时,如果返回值不是基本数据类型,且返回值为null,就不会处理这个字段,不会将字段的值映射到map中。也就是说返回的map中是没有这个字段的,当结果返回的时候,调用get方法,就直接调用了字段设置的默认值0

源码:

《mybatis查询结果为null时,值被默认值替换问题》

解决办法:

在application.yml配置中添加配置call-setters-on-nulls: true,让mybatis在给map参数映射的时候连null值也一并带过来

《mybatis查询结果为null时,值被默认值替换问题》

 

 

    原文作者:一个包子走天下
    原文地址: https://blog.csdn.net/qq_39277058/article/details/105141396
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞