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 的生命周期內(nèi),當 SqlSession 關閉時,一級緩存也會隨之失效。
具體來說,一級緩存可能失效的情況包括:
- SqlSession 執(zhí)行 clearCache() 方法,顯式地清空緩存。
- SqlSession 執(zhí)行 close() 方法,關閉 SqlSession 時,所有的一級緩存數(shù)據(jù)都會被銷毀。
- SqlSession 開始一個事務后,如果事務被提交或者回滾則會清空當前 SqlSession 對應的所有的一級緩存。
- SqlSession 在執(zhí)行 insert, update, delete 等更新操作時,會清空當前 SqlSession 對應的所有的一級緩存。因為這些操作可能會對查詢結果產(chǎn)生影響,緩存數(shù)據(jù)無效。
總之:
我們在使用 MyBatis 的時候,需要充分了解一級緩存的實現(xiàn)原理和失效情況,避免因為緩存問題導致程序運行出現(xiàn)錯誤。
如果遇到緩存失效的問題,可以通過修改配置文件或者手動清空緩存等措施來解決。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
在IDEA中創(chuàng)建父工程和子模塊module的方法步驟
這篇文章主要介紹了在IDEA中創(chuàng)建父工程和子模塊module的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
SpringBoot解決Required?String?parameter?xxx?is?not?prese
這篇文章主要介紹了SpringBoot解決Required?String?parameter?xxx?is?not?present問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01

