java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > MyBatis更新时新值为null时,updateById()更新失败

MyBatis更新时新值为null时,updateById()更新失败问题

作者:CECE00

这篇文章主要介绍了MyBatis更新时新值为null时,updateById()更新失败问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

MyBatis更新时新值为null时,更新失败

比如,类Rule中有个字段名为String note,备注是可以为空的。

note不为空时

UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","rule1").set("note", "cannot ignore");
userMapper.update(null, updateWrapper);

note为空时

可行操作:

updateWrapper()方法,把可能为空的字段,如notes,手动设置。

手动写一个sql,在xml文件里。也可以绕开NOT NULL的校验

不可行操作:

全局更新配置:

单个字段的配置:字段加注解

主要想说放弃修改配置的原因:

平时我都是用updateById(),很少用到updateWrapper的。

所以一开始觉得,修改策略是一劳永逸。

但其实,如果改了配置之后,原本项目里使用updateWrapper方法进行更新的部分就会受到影响:正常来说,会忽略更新为null的字段;

修改配置后,就不会忽略了为null的字段,这样会把原来的值误覆盖。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文