时间:2021-05-19
发现mybatisPlus会更新对象属性为null的值,
与field-strategy配置有关
mybatis-plus: global-config: db-config: field-strategy: not_null在3.1.0版本中,其选择的值有
public enum FieldStrategy { IGNORED, NOT_NULL, NOT_EMPTY, DEFAULT; private FieldStrategy() { }}我刚开始选择的是ignored,所以null值会更新,像这样:
改成not_null,就是这样了
官网解释:
该策略约定了如何产出注入的sql,涉及insert,update以及wrapper内部的entity属性生成的 where 条件
官方链接: https://mp.baomidou.com/config/#fieldstrategy
补充:mybatis-plus更新的时候忽略null值判断
一般会更新操作都会判断null值,为null就不更新对应的字段。
但是有时候需要把特定的字段更新为null,使用mybatis-plus时可以在实体类特定属性上面加注解@TableField(strategy=FieldStrategy.IGNORED),就会忽略null值判断,将null更新进数据库。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一.索引不存储null值更准确的说,单列索引不存储null值,复合索引不存储全为null的值。索引不能存储Null,所以对这列采用isnull条件时,因为索引上
背景项目中集成了mybatisplus,今天在做后台的一个常规的增删改查时,发现字段值为null时,这个字段不会被保存到数据库解决办法在字段上加上@TableF
自上次网站PR值更新(时间是2013年12月)离现在已经将近一年的时间了,按照PR值的更新规律,通常是每隔3个月左右的时间就会更新一次,尽管近几次的PR值更新不
在平常的项目中,经常会碰到这样的问题:我需要在一张标中同时更新和查询出来的数据。例如:有如下图一张表数据,现在需要更新操作为:把status=1的name值更新
场景:前端修改给后台传递了几个空字符串。后台使用mybatisPlus作为dao层。结果发现空字符串也更新了,mybatisPlus的field-strateg