2013-04-09 76 views
0

已創建緩存配置的ehache.xml。 但是在這個文件中的設置只適用於休眠2L緩存 對於自定義緩存(例如高速緩存服務方法的調用:@Cacheable(「someCache」))緩存插件設置不起作用Grails ehcache.xml自定義緩存配置

<cache name="someCache" maxElementsInMemory="100" timeToLiveSeconds="86400" timeToIdleSeconds="86400"/> 

但如果設置Config.groovy中 - 它的工作原理

grails.cache.config = { 
    cache { 
    name 'someCache' 
    timeToIdleSeconds 86400 
    timeToLiveSeconds 86400 
    maxElementsInMemory 100 
    } 
} 

喜歡springcache插件,我想分享的CacheManager

cacheManager(EhCacheManagerFactoryBean) { 
    shared = true 
} 

哪裏是沒有結果

現在我有兩個地方和高速緩存管理使用grailsCacheManager.cacheManager & CacheManager.instance

任何想法寫配置?

UPD:Config.groovy中 配置已創建

import grails.test.Test 
grails.cache.config = { 
    domain { 
    name Test 
    timeToIdleSeconds 3600 
    timeToLiveSeconds 3600 
    maxElementsInMemory 50000 
    } 
    cache { 
    name 'myCache' 
    timeToIdleSeconds 86400 
    timeToLiveSeconds 86400 
    maxElementsInMemory 1000 
    } 
    defaults { 
    eternal false 
    overflowToDisk false 
    diskPersistent false 
    timeToIdleSeconds 600 
    timeToLiveSeconds 3600 
    memoryStoreEvictionPolicy 'LRU' 
    } 
} 

域:

package grails.test 
class Test { 
    static mapping = { 
    cache 'nonstrict-read-write' 
    version false 
    } 
} 

和控制器I撥打:

Test.get(params.id) 

但是,高速緩存爲空: grails.test.Test CUR大小:0

自定義緩存 「myCache」 - 工作

+1

查看解決方法http://jira.grails.org/browse/GPCACHEEHCACHE-4 – demon101 2013-04-12 20:32:28

回答

1

看看Grails的插件的Ehcache documentation。它包含解釋如何使用Grails緩存插件DSL配置Hibernate二級緩存的部分。查找「Hibernate二級緩存」和「Hibernate域類二級緩存」

+0

「自定義」緩存和兩個緩存管理器中的問題。 Hibernate第二級緩存效果很好 – demon101 2013-04-09 15:00:41

+0

爲什麼你需要2個緩存管理器?如果你需要一個用於Hibernate,一個用於由ehcache插件管理的緩存,那麼文檔將顯示如何使用DSL配置它,而不需要ehcache.xml – 2013-04-09 15:47:13

+0

我更新了問題。域緩存的DSL配置不起作用。 – demon101 2013-04-09 17:04:01