关于mybatis callSettersOnNulls 配置

关于mybatis callSettersOnNulls 配置

              今天做了一件坑了自己的事情,为此浪费了好多时间。。。

   在mybatis的设置中,看到了这样的一行设置。出于程序员的好奇,去搜索了一下,这条设置是干什么的。

   <setting name="callSettersOnNulls" value="true"/>

   在网上众多大神的解答下,终于一知半解了。

   在一般查询中,如果用map接受查询结果时,会自动将查询结果为null的字段忽略,这样就造成取参数时报空指针异常的情况。

   如果设置了这条属性之后,mybatis就不会忽略这些字段,你依然能get到这些key,只不过value为null,这样也方便。

   那么坑来了,这种设置的情况下,会出现2种比较特殊的情况。

   1.如果整个查询的所有字段都没有值,就是查询到0条记录时,那么接受到的map是什么结果?

   答案是,我们会接收到一个所有key值都为null 的map 而不是一个为null的map。

   2.如果只查询一个字段,而用map接收,此时为null是什么结果?

   答案是,我们会接收到一个为null的map,跟上面情况正好相反。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值