鱼塘码农

菜鸟学习记录
鱼海无涯

mybatis-plus updateById方法无法将字段更新为null

并没有多少时间给我学基础知识,还是直接上项目比较快。在修改一个旧项目的update接口时,有个将日期字段修改为null的操作,前端我把字段加上了,往后台传null,但是更新不了,打断点的时候发现拼出来的sql根本没有这个字段,百度后才知道这是MyBatis-Plus对字段的验证策略导致的,MyBatis-Plus默认进行了不是全量更新的策略.进一步百度找到了解决方案,在实体类中添加 @TableField注解就可以解决

/**

 * XX日期
 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JSONField(format = "yyyy-MM-dd")
@TableField(strategy = FieldStrategy.IGNORED)
private Date xxDate;

添加注解以后,断点里看的sql确实加上这个日期字段了,但是更新的时候报错无效的列类型:1111。
跟后端对接口的时候经常看见这个报错,都是直接扔给后端处理,没想到现在自己遇到了,没别的办法,直接百度。
最后的解决方法是在注解里再加个el,我也不知道这是啥。

@TableField(el = "xxDate, jdbcType=TIMESTAMP",strategy = FieldStrategy.IGNORED)

附@TableField注解的解释:
20190930151444851.png

文章内容可能来自网络,纯为学习使用,若有侵权,请联系我删除 | 当前页面:鱼塘码农 » mybatis-plus updateById方法无法将字段更新为null

评论