Hibernate 快取同步策略
阿新 • • 發佈:2019-02-02
快取同步策略可應用於實體類和集合屬性。
快取同步策略決定了資料快取中的存取規則。
為了使得快取排程遵循正確的應用級事務隔離機制,我們必須為每個實體類指定相應的快取同步策略。
Hibernate 提供了以下4種內建的快取同步策略:
1. read-only
只讀。對於不會發生改變的資料,可使用只讀型快取。
2. nonstrict-read-write
如果程式對併發訪問下的資料同步要求不是非常嚴格,且資料更新操作頻率較低(幾個小時或者更長時間更新一次),可以採用本選項,獲得較好的效能。
3. read-write
嚴格可讀寫快取。基於時間戳判定機制,實現了“read committed”事務隔離等級。可用於對資料同步要求嚴格的情況,但不支援分散式快取。這也是實際應用中使用最多的同步策略。
4. transactional
事務型快取,必須執行在JTA事務環境中。
在事務型快取中,快取的相關操作也被新增到事務之中(此時的快取,類似一個記憶體資料庫),如果由於某種原因導致事務失敗,我們可以連同緩衝池中的資料一週回滾到事務開始之前的狀態。
事務型快取實現在“Repeatable read” 事務隔離等級,有效保障了資料的合法性,適用於對關鍵資料的快取。
注意:目前Hibernate內建的Cache中,只有JBossCache支援事務性的Cache實現。