關(guān)于mybatis callSettersOnNulls 配置解析
今天做了一件坑了自己的事情,為此浪費(fèi)了好多時間。。。
在mybatis的設(shè)置中,看到了這樣的一行設(shè)置。出于程序員的好奇,去搜索了一下,這條設(shè)置是干什么的?! ?/p>
<setting name="callSettersOnNulls" value="true"/>
在網(wǎng)上眾多大神的解答下,終于一知半解了。
在一般查詢中,如果用map接受查詢結(jié)果時,會自動將查詢結(jié)果為null的字段忽略,這樣就造成取參數(shù)時報空指針異常的情況。
如果設(shè)置了這條屬性之后,mybatis就不會忽略這些字段,你依然能get到這些key,只不過value為null,這樣也方便。
那么坑來了,這種設(shè)置的情況下,會出現(xiàn)2種比較特殊的情況。
1.如果整個查詢的所有字段都沒有值,就是查詢到0條記錄時,那么接受到的map是什么結(jié)果?
答案是,我們會接收到一個所有key值都為null 的map 而不是一個為null的map。
2.如果只查詢一個字段,而用map接收,此時為null是什么結(jié)果?
答案是,我們會接收到一個為null的map,跟上面情況正好相反。
總結(jié)
以上所述是小編給大家介紹的關(guān)于mybatis callSettersOnNulls 配置解析,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
相關(guān)文章
Redisson分布式信號量RSemaphore的使用超詳細(xì)講解
這篇文章主要介紹了Redisson分布式信號量RSemaphore的使用,基于Redis的Redisson的分布式信號量RSemaphore采用了與java.util.concurrent.Semaphore相似的接口和用法2023-02-02Spring MVC學(xué)習(xí)筆記之Controller查找(基于Spring4.0.3)
這篇文章主要給大家介紹了關(guān)于Spring MVC學(xué)習(xí)筆記之Controller查找(基于Spring4.0.3)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03dubbo擴(kuò)展點(diǎn)AOP切面功能擴(kuò)展示例詳解
這篇文章主要為大家介紹了dubbo擴(kuò)展點(diǎn)AOP切面功能擴(kuò)展示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Spring boot如何通過@Scheduled實(shí)現(xiàn)定時任務(wù)及多線程配置
這篇文章主要介紹了Spring boot如何通過@Scheduled實(shí)現(xiàn)定時任務(wù)及多線程配置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12