解决mybatis框架不更新null值有两个地方需要注意:
1.在需要null值更新的字段上添加注解
覆盖全局策略设置
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer indicatorUpperId;
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Date createDate;
.....
复制代码
@TableField(strategy = FieldStrategy.IGNORED)这个会覆盖全局策略的。
2.一定要设置字段的类型 jdbcType=JdbcTpe.*
如果写了sql,那么在sql赋值处带上字段类型
create_date = #{createDate ,jdbcType=JdbcTpe.TIMESTAMP}
如果没有sql,则在实体类注解上带上字段类型
@TableField(value ="createDate", jdbcType=JdbcTpe.TIMESTAMP ,
updateStrategy = FieldStrategy.IGNORED)
private Date createDate;