我有一个名为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"])
我做错了什么?
答案 0 :(得分:6)
fetch
方法的Domain.list()
参数不是用于过滤响应,也不是用于获取某些项,而是用于指定是否急切地或懒惰地加载Domain类的属性
ie(来自documentation for list):
def results = Book.list(fetch:[authors:"eager"])
要做你正在做的事情,我相信你可以使用findAllWhere
电话,例如:
Address.findAllWhere( clone:false, zip:'90210' )