Mybatis-plus更新字段update_by失败问题
问题复现
1、实体类字段
@TableField(value = "update_by",updateStrategy = FieldStrategy.IGNORED) private String updateBy;
2、Debug查看原因


3、查看执行 sql
==> Preparing: UPDATE t_inlay SET inlay_identity=?, document_num=?, inlay_code=?, inlay_name=?, production_plant_id=?, production_plant_name=?, production_network_id=?, production_network_name=?, create_by=?, create_id=?, update_id=?, create_time=?, update_by=?, update_time=? WHERE id=? AND del_flag='0'
==> Parameters: 8a8ad19f8d4394b9018d4394b9070000(String), GEM20240126102356000125(String), 1035(String), wang-test233(String), 130001(String), 东莞美和珠宝(String), 13(String), 外协工厂(String), wang(String), 1750704368974766082(String), 1750704368974766082(String), 2024-01-26 10:23:57.0(Timestamp), 930225(String), 2024-01-26 14:33:55.564(Timestamp), 25(Integer)
<== Updates: 1
根据执行的 sql 语句也可以看到,这里并没有更新赋值的当前登录人的 昵称
4、查 mp 的 官网

解决方案
使用 LambdaUpdateWrapper 来代替 updateById ,并在 LambdaUpdateWrapper 里面直接进行赋值
案例:
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaUpdateWrapper<Entity> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(Entity::getUuid, inlay.getUuid());
// 这里自己指定字段的复制,不走 mp 的填充策略
wrapper.set(Entity::getUpdateBy, loginUser.getRealname());
inlay.setUpdateTime(new Date());
inlay.setUpdateBy(loginUser.getRealname());
inlay.setUpdateId(loginUser.getId());
// entity 是查询出的数据库信息实体类
entityMapper.update(entity, wrapper);总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
java.lang.ArrayIndexOutOfBoundsException数组越界异常问题解决
这篇文章主要给大家介绍了关于java.lang.ArrayIndexOutOfBoundsException数组越界异常问题解决的相关资料,数组越界访问是一个非常严重的问题,文中通过图文将解决的办法介绍的非常详细,需要的朋友可以参考下2024-01-01
剑指Offer之Java算法习题精讲数组与列表的查找及字符串转换
跟着思路走,之后从简单题入手,反复去看,做过之后可能会忘记,之后再做一次,记不住就反复做,反复寻求思路和规律,慢慢积累就会发现质的变化2022-03-03
Springboot实现WebMvcConfigurer接口定制mvc配置详解
这篇文章主要介绍了Springboot实现WebMvcConfigurer接口定制mvc配置详解,spring boot抛弃了传统xml配置文件,通过配置类(标注@Configuration的类,@Configuration配置类相当于一个xml配置文件)以JavaBean形式进行相关配置,需要的朋友可以参考下2023-09-09
Springboot如何使用Aspectj实现AOP面向切面编程
这篇文章主要介绍了Springboot如何使用Aspectj实现AOP面向切面编程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-01-01


最新评论