啊湫----今天做项目遇到的redis缓存问题---解决方案
演示缓存问题
在进行 前端某个功能更新时 传递的参数 问题 导致 缓存储存 覆盖 只缓存到 传递参数的 值
更新完毕后 进行 存储到redis当中 只存入了 当前这个不可以属性和一个id 其它的参数值 u覆盖默认为 空 ' null '
缓存储存 覆盖
解决办法
一、进行使用糊涂(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
先执行更新 可在返回时进行查询一边
this.providerMapper.updateById(provider);
return this.providerMapper.selectById(provider.getId());
代码演示
这个bug有点小难受
下次再见 拜拜!
你的压力来源于无法自律,只是假装努力,现状跟不上内心欲望,所以你焦虑又恐慌。——杨不易