1
我在grails中查詢緩存和調用它的地方發現了一個奇怪的問題。我已經測試了幾次,並得到了相同的結果。Grails在視圖中不使用查詢緩存
問題:下面的視圖\ gsp代碼每次都碰到數據庫,即使我有cache:true
。
<g:select name="foo.thing.id" in="${Thing.findAll([cache:true])}" value="${foo.thing?.id}" />
解決方法:推查詢調用到控制器尊重cache:true
參數,它現在停止打在每個頁面加載數據庫。
控制器:
def doStuff = {
def things = Thing.findAll([cache:true]);
return ['things':things]
}
查看:
<g:select name="foo.thing.id" in="${things}" value="${foo.thing?.id}" />
我使用Grails 1.3.7具有以下配置....
hibernate {
cache.use_second_level_cache=true
cache.use_query_cache=true
cache.provider_class='org.hibernate.cache.EhCacheProvider'
}
有其他人看到這或者可以向我描述爲什麼它會以不同的方式工作?
非常贊同。這絕對是一個不好的做法。 MVC架構背後的主要原因是關注點分離。 – dmahapatro 2013-05-08 19:01:57