mybatis框架不更新null值解决办法

2,267 阅读1分钟

解决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;