我可以写:
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
?
答案 0 :(得分:1)
尝试使用其他名称,而不是“交易”,看看你是否得到了预期的结果。
我拿了你的代码,只是更改了对象的名称,它工作正常
答案 1 :(得分:0)
你的第二个例子应该像亚伦指出的那样工作。有时候我发现当数据库没有结果时你就会收到错误,所以也许就是这样。
顺便说一下,list()是默认的,所以如果你真的想缩短它,你甚至可以这样做:
def transactions = Transaction.createCriteria() {