使用了mybatis-plus的自动填充功能,字段是使用注解@TableField(value ="updator", fill = FieldFill.INSERT_UPDATE),然后在MetaObjectHandler的实现类中进行这些通用字段的填充,但有时我不想填充这些字段,如定时任务或是mq消费者时,但生成的sql中一定带有了 updator=null的语句,不管MetaObjectHandler实现类中有没有填充,因为是先生成的sql语句,再调用的MetaObjectHandler的方法。后来我尝试使用LambdaUpdateWrapper进行sql的生成,例如:
LambdaUpdateWrapper lambdaUpdateWrapper =new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(OrderInfoPO::getNumber, lukeOrderNumber).set(OrderInfoPO::getThirdOrderNumber, thirdOrderNumber);
boolean update =orderInfoService.update(null, lambdaUpdateWrapper);
结果就行了,sql中没有拼接那些通用字段
网友评论