尝试在Grails(2.1.5)中的'repository'对象上缓存方法调用时,我遇到了一个奇怪的问题。这个存储库是src / groovy中的一个普通的groovy对象,它结合了两个数据源的数据并返回一个'Seller'对象。
def aDatabaseHelper
def bDatabaseHelper
@Cacheable('seller_do_get')
public Seller get(id){
....
//do stuff with aDatabaseHelper and bDatabaseHelper
return seller
}
SellerRepository在resources.groovy
中定义aDatabaseHelper (ADatabaseHelper ){
aDataSource = ref("dataSource_a")
}
...
sellerRepository(SellerRepository){
aDatabaseHelper = aDatabaseHelper
bDatabaseHelper = bDatabaseHelper
}
我们已经安装了ehcahce插件(1.0.0)并且可以正常使用其他对象/方法。
上面由于某种原因没有缓存它 - 每次都进入get方法。我创建了一个'BlaRepository',它接受相同的依赖项并且有一个getBla(id)方法,并且它被缓存得很好。
有人知道这里发生了什么吗?我在做哪个愚蠢的错误?
答案 0 :(得分:0)
似乎应该可以工作,但可能是一个错误。创建一个演示问题的小型测试应用并运行grails bug-report
并将其附加到http://jira.grails.org/browse/GPCACHEEHCACHE的JIRA,我会看看。