Mybatis-plus更新字段update_by失敗問(wèn)題
問(wèn)題復(fù)現(xiàn)
1、實(shí)體類字段
@TableField(value = "update_by",updateStrategy = FieldStrategy.IGNORED) private String updateBy;
2、Debug查看原因
3、查看執(zhí)行 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), 外協(xié)工廠(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
根據(jù)執(zhí)行的 sql 語(yǔ)句也可以看到,這里并沒(méi)有更新賦值的當(dāng)前登錄人的 昵稱
4、查 mp 的 官網(wǎng)
解決方案
使用 LambdaUpdateWrapper 來(lái)代替 updateById ,并在 LambdaUpdateWrapper 里面直接進(jìn)行賦值
案例:
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LambdaUpdateWrapper<Entity> wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(Entity::getUuid, inlay.getUuid()); // 這里自己指定字段的復(fù)制,不走 mp 的填充策略 wrapper.set(Entity::getUpdateBy, loginUser.getRealname()); inlay.setUpdateTime(new Date()); inlay.setUpdateBy(loginUser.getRealname()); inlay.setUpdateId(loginUser.getId()); // entity 是查詢出的數(shù)據(jù)庫(kù)信息實(shí)體類 entityMapper.update(entity, wrapper);
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot攔截器和過(guò)濾器實(shí)例解析
這篇文章主要介紹了Spring Boot攔截器和過(guò)濾器實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01springboot中application.yml多環(huán)境生效規(guī)則說(shuō)明
這篇文章主要介紹了springboot中application.yml多環(huán)境生效規(guī)則說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Spring中獲取Bean方法上的自定義注解問(wèn)題解析
這篇文章主要介紹了Spring中如何獲取Bean方法上的自定義注解,基本的思路就是通過(guò)Spring提供的ApplicationContext#getBeansWithAnnotation+反射來(lái)實(shí)現(xiàn),需要的朋友可以參考下2023-06-06如何使用HttpClient發(fā)送java對(duì)象到服務(wù)器
這篇文章主要介紹了如何使用HttpClient發(fā)送java對(duì)象到服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11SpringMVC中控制器返回JSON數(shù)據(jù)的實(shí)現(xiàn)
本文主要介紹了SpringMVC中控制器返回JSON數(shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07一個(gè)簡(jiǎn)單的類加載器URLClassLoader案例
這篇文章主要介紹了一個(gè)簡(jiǎn)單的類加載器URLClassLoader案例,這里寫了一個(gè)小 demo,來(lái)加深對(duì)于反射的理解,需要的朋友可以參考下2023-04-04Java如何跳出當(dāng)前的多重嵌套循環(huán)的問(wèn)題
Java中的循環(huán)結(jié)構(gòu)包括for循環(huán)、while循環(huán)、do-while循環(huán)和增強(qiáng)型for循環(huán),每種循環(huán)都有其適用場(chǎng)景,在循環(huán)中,break、continue和return分別用于跳出循環(huán)、跳過(guò)當(dāng)前循環(huán)和結(jié)束當(dāng)前方法,對(duì)于多重嵌套循環(huán)2025-01-01