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

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


areaId被忽略

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


mapper

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

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

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


注解
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容