一行配置引發的bug -- mybatis 的 callSettersOnNulls 設置

最近接收一個項目,隨手點點發現一個bug,經過調試發現,搜索數據的時候,返回了一個所有屬性都是空的對象,而舊的版本沒有這個問題。找了兩天時間,最終定位問題所在,特此記錄。

放代碼:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration     
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"     
    "http://mybatis.org/dtd/mybatis-3-config.dtd">  
<configuration>
    <properties>
            <property name="dialect" value="mysql"/>
    </properties>

    <settings>
        <setting name="logImpl" value="log4j"/>
        <setting name="callSettersOnNulls" value="true"/>
    </settings>

    <plugins>
        <plugin interceptor="com.jc.foundation.dao.interceptor.PaginationInterceptor"/>
        <plugin interceptor="com.jc.foundation.dao.interceptor.EncryInterceptor"></plugin>
    </plugins> 
    
</configuration>

看見 <setting name="callSettersOnNulls" value="true"/> 這行了么?對!就是這行配置。粘貼一下搜到的資料。

When a query returns a row with all columns being null (= an empty row), MyBatis returns null by default.

翻譯一下,當查詢的返回一行都是null的結果時,MyBatis會幫忙填充一個所有屬性都是null的對象。對就是這,和我遇見的bug一模一樣,用此文哀悼我逝去的兩天時光。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優秀的...
    笨鳥慢飛閱讀 5,633評論 0 4
  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,166評論 6 13
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,766評論 18 399
  • 1 引言# 本文主要講解JDBC怎么演變到Mybatis的漸變過程,重點講解了為什么要將JDBC封裝成Mybait...
    七寸知架構閱讀 76,624評論 36 979
  • 近日所聽所聞,頓有物傷其類的感懷。本意是對的,也是認同的;無奈方式讓人頗難接受!負能量滿滿的時候,起碼還有我吸取陽...
    素語_dd88閱讀 235評論 0 0