解决mybatis 无法更新空字符串或者null问题

在使用mybatis框架时,有时会遇到此类问题:更新某数据时,时常更新null或者空字符串到数据库中,mybatis框架会自动过滤掉这条更新语句。
cityId非空,areaId为空时
例如:


areaId被忽略

说明空值会被mybatis框架忽略。


mapper

有一种方法,但是不推荐:在配置文件里加全局配置,使mybatis不忽略所有null和空字符串。这样做的缺陷是,不更改的数据也会被置空。
有效方法:单独在有置空需求的entity实体类中加对应字段的注解@TableField。

注解中:
value值为对应字段。
updateStrategy = FieldStrategy.IGNORE 将此字段的空值判断忽略(IGNORE)

注解之后还不够。因为会报error无效的列类型:1111
此时是因为传进来的空值不确定类型。只需要在注解中加入jdbcType即可。
例:


注解

你可能感兴趣的:(解决mybatis 无法更新空字符串或者null问题)