阅读 281

mybatis-plus的updateById不更新null值属性问题(mybatis-plus,3.2.0)

使用userService.updateById(user)时,发现user的Sex值并没有被设置为空:

User user = new User(); user.setId(5); user.setSex(null); return userService.updateById(user); 复制代码

三种解决方法:

基于,mybatis-plus,3.2.0

<dependency>     <groupId>com.baomidou</groupId>     <artifactId>mybatis-plus-boot-starter</artifactId>     <version>3.2.0</version> </dependency> 复制代码

1.全局配置

---配置后全局有效,所有实体的所有null属性都会被更新,不太合适
可选项目: IGNORED, NOT_NULL,(默认) NOT_EMPTY

mybatis-plus:  global-config:   db-config:    field-strategy: ignored 复制代码

2。实体类属性上配置

---只有这一个字段为null会更新。后续使用updateById,都需要记得sex字段要不要赋值。适合字段默认为null的情况。

   @TableField(updateStrategy = FieldStrategy.IGNORED)    private String sex; 复制代码

3.自己手写update的sql

@Update("update t_user set f_sex=null where f_id=#{userId}") void updateUserSex(@Param("userId") Long userId); 复制代码

其他地方,手动调用即可: userMapper.updateUserSex(userId);


作者:konny
链接:https://juejin.cn/post/7032158064702652423


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐