mybatis清除一級緩存的幾種方式
更新時間:2024年03月09日 09:38:59 作者:Smaksze
這篇文章主要介紹了mybatis清除一級緩存的幾種方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
mybatis清除一級緩存方式
1、手動清空
sqlSession.clearCache()
2、Options注解
public interface UserMapper{ @Options(flushCache= Options.FlushCachePolicy.TRUE) User selectById(@params("id")Integer id) }
3、調用了修改的方法時,底層直接調用sqlSession.clearCache()一次性全部清空
4、在setting中關閉一級緩存
locaCacheScope = STATEMENT
5、手動提交/回滾
mybatis一級緩存何時失效
mybatis的一級緩存是 SqlSession 級別的緩存,它存在于 SqlSession 的生命周期內,當 SqlSession 關閉時,一級緩存也會隨之失效。
具體來說,一級緩存可能失效的情況包括:
- SqlSession 執(zhí)行 clearCache() 方法,顯式地清空緩存。
- SqlSession 執(zhí)行 close() 方法,關閉 SqlSession 時,所有的一級緩存數據都會被銷毀。
- SqlSession 開始一個事務后,如果事務被提交或者回滾則會清空當前 SqlSession 對應的所有的一級緩存。
- SqlSession 在執(zhí)行 insert, update, delete 等更新操作時,會清空當前 SqlSession 對應的所有的一級緩存。因為這些操作可能會對查詢結果產生影響,緩存數據無效。
總之:
我們在使用 MyBatis 的時候,需要充分了解一級緩存的實現原理和失效情況,避免因為緩存問題導致程序運行出現錯誤。
如果遇到緩存失效的問題,可以通過修改配置文件或者手動清空緩存等措施來解決。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java SimpleDateFormat中英文時間格式化轉換詳解
這篇文章主要為大家詳細介紹了Java SimpleDateFormat中英文時間格式化轉換,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12EasyExcel實現讀取excel中的日期單元格并自動判定終止讀取
這篇文章主要為大家詳細介紹了EasyExcel如何實現讀取excel中的日期單元格并自動判定終止讀取,感興趣的小伙伴可以跟隨小編一起學習一下2024-11-11