1. 程式人生 > >Hibernate 快取同步策略

Hibernate 快取同步策略

快取同步策略可應用於實體類和集合屬性。

快取同步策略決定了資料快取中的存取規則。

為了使得快取排程遵循正確的應用級事務隔離機制,我們必須為每個實體類指定相應的快取同步策略。

Hibernate 提供了以下4種內建的快取同步策略:

1. read-only

只讀。對於不會發生改變的資料,可使用只讀型快取。

2. nonstrict-read-write

如果程式對併發訪問下的資料同步要求不是非常嚴格,且資料更新操作頻率較低(幾個小時或者更長時間更新一次),可以採用本選項,獲得較好的效能。

3. read-write

嚴格可讀寫快取。基於時間戳判定機制,實現了“read committed”事務隔離等級。可用於對資料同步要求嚴格的情況,但不支援分散式快取。這也是實際應用中使用最多的同步策略。

4. transactional

事務型快取,必須執行在JTA事務環境中。

在事務型快取中,快取的相關操作也被新增到事務之中(此時的快取,類似一個記憶體資料庫),如果由於某種原因導致事務失敗,我們可以連同緩衝池中的資料一週回滾到事務開始之前的狀態。

事務型快取實現在“Repeatable read” 事務隔離等級,有效保障了資料的合法性,適用於對關鍵資料的快取。

注意:目前Hibernate內建的Cache中,只有JBossCache支援事務性的Cache實現。