一行配置引发的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、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 11,156评论 0 4
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,864评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,930评论 18 399
  • 1 引言# 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybait...
    七寸知架构阅读 76,778评论 36 979
  • 近日所听所闻,顿有物伤其类的感怀。本意是对的,也是认同的;无奈方式让人颇难接受!负能量满满的时候,起码还有我吸取阳...
    素语_dd88阅读 1,586评论 0 0