前景说明:
使用MyBatis-Plus中的updateById方法来更新字段,如果其中字段为null或者"",无法更新到数据库中。
报错原因:
MyBatis-Plus在做更新处理的时候会做null判断,默认是不更新字段为null,会自动忽略。
解决办法:
在对应实体类上添加如下注解:
- MyBatis-Plus3.4.0 版本之后使用这个注解:
@TableField(updateStrategy = FieldStrategy.IGNORED)
- MyBatis-Plus3.4.0之前的版本使用这个注解:
@TableField(strategy = FieldStrategy.IGNORED)
FieldStrategy
是MyBatis-Plus中的一个枚举类,用于指定实体类属性在进行数据库操作时的策略。该枚举类中的参数代表的意义如下:
-
DEFAULT
:默认策略,表示使用全局配置的策略。如果全局配置中未指定策略,则默认为NOT_NULL
。 -
NOT_NULL
:非空策略,表示当实体类属性不为null时,才会进行数据库操作。如果属性为null,则忽略该属性。 -
NOT_EMPTY
:非空白策略,表示当实体类属性不为null且不为空字符串时,才会进行数据库操作。如果属性为null或空字符串,则忽略该属性。 -
IGNORED
:忽略策略,表示无论实体类属性的值是什么,都会进行数据库操作。