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