在我的应用程序中,我按如下方式对域对象进行了排序:
def o = Domain.findAll(sort: 'lastUpdated')
在Grails 2.2。*中,这工作正常,结果正在返回。今天,我升级到Grails 2.3.4,并且相同的语法抛出错误,说明:
No property found for name [all] for class [sample.Domain]
排序的新语法是什么?
提前致谢。
答案 0 :(得分:11)
我会使用list:
def results = Domain.list(sort: "lastUpdated")
答案 1 :(得分:4)
关于最后一条评论,它可能会产生一个非常糟糕的表演问题:
使用Domain.findAll().sort({lastUpdated: 'desc'})
,您可以在排序任何内容之前加载整个表。对于此请求看起来没问题,但假设您有大量数据,则需要添加最大值和偏移量。否则请求将花费太多时间。
另一方面,上面的那个更好:
def results = Domain.list(sort: "lastUpdated")
这样做,您只需要加载所需的数据量......仅此而已。您可以通过这种方式添加偏移量和最多行数:
def results = Domain.list(max: 10, offset:10, sort: "lastUpdated")
这不是原帖的答案,但它解释了为什么之前的评论投票不好:)
答案 2 :(得分:-1)
好吧,我一发布就把它想出来了:Domain.findAll().sort({lastUpdated: 'desc'})