【错误的发生场合】
当把null值赋给一个字段时。
【应对措施】
MyBatis官方文档指出:“如果对一个属性字段,需要传递null入内,jdbcType是必要的。”
所以,对于给属性字段可能赋空值的场合,需要显式指定可能为空的参数类型,如:
update_uid=#{uid,jdbcType=NUMERIC}; // 数字型
value_from=#(valueFrom,jdbcType=VARCHAR}; // 字符串型
update_time=#{utime,jdbcType=TIMESTAMP}; // 时间戳型
【吐槽】
出这个异常实际是MyBatis给字段赋值时遇到null不知怎么处理,它内部对不同类型自然是有预案的,但需要使用者显式指定一种。
但是,“错误:无效的列类型1111” 这种反馈信息是不是太随意了,很难想象这是一个有广泛受众的DB框架爆出的错误信息。希望整改措施早日出现。
END