若依前后端分离版数据库已经存在的字典添加一条后刷新没作用,必须清除Redis缓存
生活随笔
收集整理的這篇文章主要介紹了
若依前后端分离版数据库已经存在的字典添加一条后刷新没作用,必须清除Redis缓存
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
場景
使用若依的前后端分離版,前端下拉框的使用直接查詢的是字典表中的數(shù)據(jù)。
對于某個類型的字典如果之前已經(jīng)添加過并使用過,后來想要再添加一條此類型的字典。
在數(shù)據(jù)庫中添加后,前端刷新下,發(fā)現(xiàn)沒有獲取到新增的字典數(shù)據(jù)。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關(guān)注公眾號
霸道的程序猿
獲取編程相關(guān)電子書、教程推送與免費下載。
實現(xiàn)
這是因為若依的根據(jù)字典類型獲取數(shù)據(jù)的接口使用了Redis的字典緩存機制。
前端調(diào)用的根據(jù)字典的類型獲取字典的值的接口對應(yīng)的后臺方法中
??? @GetMapping(value = "/type/{dictType}")public AjaxResult dictType(@PathVariable String dictType){return AjaxResult.success(dictTypeService.selectDictDataByType(dictType));}對應(yīng)的service中
??? @Overridepublic List<SysDictData> selectDictDataByType(String dictType){List<SysDictData> dictDatas = DictUtils.getDictCache(dictType);if (StringUtils.isNotNull(dictDatas)){return dictDatas;}dictDatas = dictDataMapper.selectDictDataByType(dictType);if (StringUtils.isNotNull(dictDatas)){DictUtils.setDictCache(dictType, dictDatas);return dictDatas;}return null;}會根據(jù)傳遞過來的字典類型首先從Redis的字典緩存中查詢,如果之前有的話則直接返回,
否則再從數(shù)據(jù)庫中進行查詢并且再存到緩存中。
所以為了顯示新增加的之前存在的字典類型是數(shù)據(jù)。
可以新建一個單元測試方法,調(diào)用清除字典緩存的數(shù)據(jù)。
那么在進行查詢時就是查詢數(shù)據(jù)了。
@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class TestRedis {@Testpublic void test(){DictUtils.clearDictCache();} }?
總結(jié)
以上是生活随笔為你收集整理的若依前后端分离版数据库已经存在的字典添加一条后刷新没作用,必须清除Redis缓存的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 若依前后端分离版怎样根据数据库生成代码并
- 下一篇: linux cmake编译源码,linu