hibernate重新整理資料時的快取問題

2021-05-09 01:45:33 字數 576 閱讀 3615

眾所周知,hibernate是採取二級快取的策略,第一是session級別的快取,二是sessionfactory級別的快取,並且預設二級快取是開啟的。讀取資料的時候,hibernate將第一次讀取的內容放到了快取中,若此時有別的應用修改了資料庫中的資料,程式再次讀取的時候,內容是從快取中直接獲取,先從一級快取中讀,若沒有則從二級快取中讀取,則讀取的資料為過時的資料。

我遇到的是分頁資料的讀取,因為有個後台程式在定時更新作業狀態資料,故在快取開啟的情況下重新整理頁面,不僅得不到應有的正確資料,

不斷重新整理時還會出現很多奇怪的現象,比如狀態資料的不斷改變和時隱時現,當時搞得很惱火,靜心讀了hibernate的快取策略後,採取的應對措施為:

1.session.clear(),先清除一級快取

2.createsqlquery建立的sqlquery物件query中設定query.setcachemode(cachemode.ignore);

設定成cachemode.ignore模式,在讀取資料的時候,不和二級快取交換資料,直接讀取資料庫。

則頁面重新整理皆為正常顯示,因為分頁每頁顯示的資料頂多也就10幾20幾條,故不讀快取對效能影響不大,可放心使用。

hibernate重新整理資料時的快取問題

今天碰見了乙個bug,兩個系統同使用乙個資料庫,兩個系統都採用的ssh框架,其中乙個系統更新了資料庫後,另乙個系統得5分鐘後才能取得更新的資料,腫麼回事呢?仔細查了查,原來是hibernate快取的問題,眾所周知,hibernate是採取二級快取的策略,第一是session級別的快取,二是sessi...

fragment切換時,重新整理資料

一般,我們做專案,底部的4個fragment切換時,最好可以重新整理資料 做fragment顯影藏時,最好用hide,show 這時會有乙個方法onhiddenchanged 在這裡面我們可以重新整理資料 還可以做這個操作 點當前tab,也重新整理介面 override public void on...

echarts重新整理資料時x資料不變

在工作中利用echarts繪製折線圖,發現當x軸時間更新時,x軸並沒有重新整理,當時的 如下。初始化echarts var initoption legend grid toolbox xaxis yaxis series var tablechart require.config require ...