确认
- [X] 我的版本是最新版本, 我的版本号与 version 相同, 并且项目里无依赖冲突
- [X] 我已经在 issue 中搜索过, 确认问题没有被提出过
- [X] 我已经修改标题, 将标题中的 描述 替换为遇到的问题
功能改进
mybatis plus (当前版本3.5.2)在遇到字段设置为空的需求时,所提供的三个解决方案都存在缺陷。
通过调整FieldStrategy策略粒度太大,会影响全局。
通过mapper(entity, warpper) 方式通过entity和一个LambdaUpdateWrapper进行组合方式达到更新字段为null的目的
但是为什么不给LambadUpdateChainWrapper直接提供一个setNull()方法来直接设置字段为null呢。
并且我使用mapper(entity, warpper) 方式在wrapper中手动设置字段为null但是在进行sql 映射执行的时候还是会报错
参考资料
是否可以增加setNull()方法直接设置字段为null
this.lambdaUpdate()
.setNull(PileSendOutPlan::getNextDaySend)
.set(PileSendOutPlan::getSendType, pileSendOutPlan.getSendType())
.set(PileSendOutPlan::getSendNow, pileSendOutPlan.getSendNow())
.set(PileSendOutPlan::getPlanSendTime, pileSendOutPlan.getPlanSendTime())
.eq(PileSendOutPlan::getId, pileSendOutPlan.getId())
.update();
Comment From: lnsane
和这种有什么区别?
this.lambdaUpdate()
.set(PileSendOutPlan::getNextDaySend,null)
.set(PileSendOutPlan::getSendType, pileSendOutPlan.getSendType())
.set(PileSendOutPlan::getSendNow, pileSendOutPlan.getSendNow())
.set(PileSendOutPlan::getPlanSendTime, pileSendOutPlan.getPlanSendTime())
.eq(PileSendOutPlan::getId, pileSendOutPlan.getId())
.update();
Comment From: HK-hub
你试试能不能更新成null