2011-09-15 46 views
1

我有一个名为Address的类,它有一个名为clone的布尔字段。我正尝试使用Grails list()方法来显示Address类的实例,其中clone = false。我虽然我可以使用fetch参数来实现这一点,但它不能按预期工作。而不是仅返回我想要的地址,而是返回Address类的所有实例。这里是我有:带取数参数的列表

def list = { 
    params.max = Math.min(params.max ? params.int('max') : 10, 100) 
    params.fetch = [clone:false] 
    [addressInstanceList: Address.list(params), addressInstanceTotal: Address.count()] 
} 

即使当我使它非常简单提取仍然无法按预期方式工作。例如,如果我指定我只想用邮编“90210”获取Address类的实例,我写了这个,但它仍然给我提供了Address类的所有实例。

Address.list(fetch:[zip:"90210"]) 

我在做什么错?

回答

6

fetch参数为Domain.list()方法不用于过滤的响应或紧接在读取一些物品,它是用于指定是否域类的属性都热切或延迟加载

即(从documentation for list):

def results = Book.list(fetch:[authors:"eager"]) 

要你在做什么,我相信你可以使用一个findAllWhere调用,如:

Address.findAllWhere(clone:false, zip:'90210') 
+1

哈哈,我其实已经阅读过文档(凌晨4点),但我正在读它,就像作者姓名'eager'!感谢您的澄清,现在一切都很有意义。 – ubiquibacon