在我的grails應用程序中,我的某些域類永遠不會被用戶更改。如何暫時禁用Grails中的只讀第二級緩存休眠策略?
但是,有些維護工作有時是必需的,管理員應該能夠不時地創建/編輯少數實例(比如說每年兩次)。
我想爲這些域類設置一個只讀的二級緩存策略(static mapping = { cache usage: 'read-only' }
),並且我希望能夠「禁用」(在特定情況下)只讀策略以便更新一些通過Grails腳手架編輯視圖的實例。
可能嗎?你建議我做什麼?
編輯:我正在執行的解決方案是Pascal和Burt答案的混合(請參閱註釋)。兩個答案都很好,很有幫助。所以,我選擇接受的答案讓人困惑不已。無論如何,謝謝。
Thx爲您的答案。插入新的對象將會起作用,但是當更新現有的對象時,我需要將第二級緩存「刷新」到正確的位置? (因爲否則用戶將永遠看不到更改)。我需要使用evict()方法嗎? – fabien7474 2010-02-11 07:41:39
是的,非常好的一點。將「def sessionFactory」添加到您的服務中,並在插入後調用sessionFactory.evict(YourDomainClass)以清除二級緩存。 – 2010-02-11 07:55:06