[英]Grails/Hibernate Cache unpredictable
當我真的嘗試了所有方法后,我才求助於StackOverflow,但我只是想不出如何解決這個問題。 復制非常容易,基本上我有一個表(基本上只是保存設置的鍵/值表)。
class SystemSetting {
Group settingGroup
String key
String value
String label
String type
Date lastUpdated
Date dateCreated
}
我有一個簡單的控制器,可讓我更新這些設置(@Transactional批注)並在保存時更新“ flush:true”。
現在,可以說,一旦做出更改,我就將選項從true設置為false(或任何更改),它不會反映在其他進程/會話上。
讀取設置的代碼如下:
SystemSetting setting = SystemSetting.find("FROM SystemSetting ss WHERE ss.settingGroup = :group AND ss.key = :key",
[group: group, key: key]
);
因此,例如,在瀏覽器A)中,我更新了一個設置。 在瀏覽器B(或curl)中,當我查看/訪問此設置時,它仍然具有舊值。
我已禁用所有已知的緩存:
hibernate {
cache.use_second_level_cache = false
cache.use_query_cache = false
cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
singleSession = true // configure OSIV singleSession mode
flush.mode = 'manual' // OSIV session flush mode outside of transactional context
}
grails.hibernate.cache.queries = false
但是這些結果仍然很容易重復。 什么/為什么/在哪里緩存此選項,以及如何使其無效?
確實,這不會讓我感到內在的溫暖,因為如果我不確定從數據庫中將要輸出什么數據,則會產生很多問題:(
使用Grails 2.5.1(並在2.4.4上進行測試,結果相同)。
更新:
我已經能夠在一個全新的應用程序中復制它。
可在此處找到應用程序: https : //github.com/donald-jackson/grails-async-error-demo
復制:
此問題已報告給Grails問題,並已在Grails 2.5.2中修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.