原因:mybatis-plus 对字段的验证策略导致的。这个在yml中为:
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
field-strategy: 2
解决方法:
1:把字段策略 改为0.并且需要确保你的PO对象修饰字段的时候,还需要加入el属性,每个属性对应数据库的jdbcType类型,这样才能成功更新空值或null。如下:
/**
* 角色名
*/
@TableField(value = "role_names",strategy = FieldStrategy.IGNORED,el = "role_names,jdbcType=VARCHAR")
private String rolenames;
2: 在实体类上添加 strategy = FieldStrategy.IGNORED ,表示该字段策略为 IGNORED
/**
* 角色名
*/
@TableField(strategy = FieldStrategy.IGNORED)
private String rolenames;