在grails中,为什么我必须为条件创建一个变量?
我可以写:在grails中,为什么我必须为条件创建一个变量?,grails,groovy,gorm,Grails,Groovy,Gorm,我可以写: def c = Transaction.createCriteria() def transactions = c.list { projections { groupProperty("product") countDistinct("id") } maxResults(pageBlock) firstResult(pageIndex) } 但我不能写这个: def transactions = Transacti
def c = Transaction.createCriteria()
def transactions = c.list {
projections {
groupProperty("product")
countDistinct("id")
}
maxResults(pageBlock)
firstResult(pageIndex)
}
但我不能写这个:
def transactions = Transaction.createCriteria() .list {
projections {
groupProperty("product")
countDistinct("id")
}
maxResults(pageBlock)
firstResult(pageIndex)
}
为什么会这样?为什么需要变量
c
来保存标准?尝试使用另一个名称,而不是“transaction”,然后查看是否得到所需的结果
我使用了您的代码,只是更改了对象的名称,效果很好尝试使用另一个名称,而不是“transaction”,然后看看是否得到了所需的结果
我接受了您的代码,只是更改了对象的名称,效果很好您的第二个示例应该如Aaron所指出的那样有效。有时我发现当数据库没有结果时,你会出错,所以可能就是这样 顺便说一下,list()是默认值,因此如果您真的想缩短它,您甚至可以这样做:
def transactions = Transaction.createCriteria() {
你的第二个例子应该像Aaron指出的那样有效。有时我发现当数据库没有结果时,你会出错,所以可能就是这样 顺便说一下,list()是默认值,因此如果您真的想缩短它,您甚至可以这样做:
def transactions = Transaction.createCriteria() {