演示緩存問題
在進行 前端某個功能更新時 傳遞的參數 問題 導致 緩存儲存 覆蓋 只緩存到 傳遞參數的 值
image
更新完畢后 進行 存儲到redis當中 只存入了 當前這個不可以屬性和一個id 其它的參數值 u覆蓋默認為 空 ' null '
image
緩存儲存 覆蓋
image.png
解決辦法
一歌馍、進行使用糊涂(Hutool) 工具進行解決
問題: 當前端某個功能 提交數據 但是數據不全 導致存儲到緩存 獲取到的數據 缺失
先進行根據傳遞來的 id 查詢出 對應的對象
Provider selectById = this.providerMapper.selectById(provider.getId());
在進行使用糊涂工具 進行 覆蓋
把不為空的屬性 覆蓋到 selectById 合并成一個 完整的數據集
-- 參數一為 傳遞來的對象 參數二為 被覆蓋對象
BeanUtil.copyProperties(provider, selectById, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
最后進行更新
this.providerMapper.updateById(provider);
在返回緩存 即可
return this.providerMapper.selectById(provider.getId());
========================================================
方案2
先執(zhí)行更新 可在返回時進行查詢一邊
this.providerMapper.updateById(provider);
return this.providerMapper.selectById(provider.getId());
代碼演示
image
這個bug有點小難受
下次再見 拜拜陆盘!