美文网首页
一行配置引发的bug -- mybatis 的 callSett

一行配置引发的bug -- mybatis 的 callSett

作者: 费城的二鹏 | 来源:发表于2017-12-12 16:38 被阅读721次

    最近接收一个项目,随手点点发现一个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一模一样,用此文哀悼我逝去的两天时光。

    相关文章

      网友评论

          本文标题:一行配置引发的bug -- mybatis 的 callSett

          本文链接:https://www.haomeiwen.com/subject/arenixtx.html