mapper二級(jí)緩存和分頁插件的問題
mapper層二級(jí)緩存和分頁里多租戶解析器的問題,
A租戶第一次執(zhí)行了一個(gè)語句,還沒有緩存,通過分頁插件動(dòng)態(tài)加了租戶條件,取出并緩存了數(shù)據(jù)Adata,但是緩存的key是不帶租戶條件的。
B租戶執(zhí)行了和A租戶相同的語句,命中了Adata的緩存(緩存key同樣不帶租戶條件),直接取出了Adata的數(shù)據(jù),導(dǎo)致數(shù)據(jù)不對(duì)
講道理的話,A和B如果都是先經(jīng)過分頁插件加上了租戶過濾條件,再判斷緩存的話,就不會(huì)命中錯(cuò)誤的緩存。
二級(jí)緩存也和分頁查詢總數(shù)有沖突,列表查詢的時(shí)候,命中的緩存,就不會(huì)再去查詢總數(shù),導(dǎo)致返回的total是0
不知道是否是使用方式不對(duì),如何解決,查很久的資料了,求指導(dǎo)一下
2019-08-27
如果你可以考慮關(guān)閉mapper層二級(jí)緩存,將緩存放到service層的話。那么修改后再試試,看是否依然還存在問題,如果還有問題,可以再反饋給我。
2019-08-27
MP的作者建議緩存放到 service 層,你可以自定義自己的 BaseServiceImpl 重寫注解父類方法,繼承自己的實(shí)現(xiàn)。
2020-06-03
哥, 這個(gè)問題怎么解決啊