4
我想通過調用下面的方法來清除二級緩存緩存數據:清除Hibernate的二級緩存
sessionFactory.getCache().evictEntityRegions();
我只是想知道,有沒有做什麼害處嗎?例如:如果我嘗試在事務中間清除緩存會發生什麼情況?
在此先感謝。
我想通過調用下面的方法來清除二級緩存緩存數據:清除Hibernate的二級緩存
sessionFactory.getCache().evictEntityRegions();
我只是想知道,有沒有做什麼害處嗎?例如:如果我嘗試在事務中間清除緩存會發生什麼情況?
在此先感謝。
不,這樣做並沒有什麼壞處。實際上,當您將緩存提供程序配置爲基於定義的逐出/過期策略來逐出/過期項目時,會發生同樣的情況。
嗨Dragan,我有一個case.Suppose如果一些事務正在運行,以獲得數據和二級緩存有數據在那個時候。與此同時,另一個線程在上一個事務尚未完成的同時驅逐所有區域高速緩存。那麼在這種情況下會發生什麼。我可以從該事務中的緩存中獲取null,並且會發生數據庫命中?有什麼問題嗎? –
@VikasVats在這種情況下,對象已經在第一級緩存(會話)中,並且在事務結束時將從那裏獲取對象。如果從會話中手動清除對象或手動清除整個會話,則該對象將從db重新加載並存儲在第一級和第二級高速緩存中。關於這個問題沒有任何問題。 –