演示緩存問題
在進(jìn)行 前端某個(gè)功能更新時(shí) 傳遞的參數(shù) 問題 導(dǎo)致 緩存儲(chǔ)存 覆蓋 只緩存到 傳遞參數(shù)的 值

image
更新完畢后 進(jìn)行 存儲(chǔ)到redis當(dāng)中 只存入了 當(dāng)前這個(gè)不可以屬性和一個(gè)id 其它的參數(shù)值 u覆蓋默認(rèn)為 空 ' null '

image
緩存儲(chǔ)存 覆蓋

image.png
解決辦法
一、進(jìn)行使用糊涂(Hutool) 工具進(jìn)行解決
問題: 當(dāng)前端某個(gè)功能 提交數(shù)據(jù) 但是數(shù)據(jù)不全 導(dǎo)致存儲(chǔ)到緩存 獲取到的數(shù)據(jù) 缺失
先進(jìn)行根據(jù)傳遞來的 id 查詢出 對應(yīng)的對象
Provider selectById = this.providerMapper.selectById(provider.getId());
在進(jìn)行使用糊涂工具 進(jìn)行 覆蓋
把不為空的屬性 覆蓋到 selectById 合并成一個(gè) 完整的數(shù)據(jù)集
-- 參數(shù)一為 傳遞來的對象 參數(shù)二為 被覆蓋對象
BeanUtil.copyProperties(provider, selectById, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
最后進(jìn)行更新
this.providerMapper.updateById(provider);
在返回緩存 即可
return this.providerMapper.selectById(provider.getId());
========================================================
方案2
先執(zhí)行更新 可在返回時(shí)進(jìn)行查詢一邊
this.providerMapper.updateById(provider);
return this.providerMapper.selectById(provider.getId());
代碼演示

image
這個(gè)bug有點(diǎn)小難受
下次再見 拜拜!