在我的申请,我已经整理我的域对象如下:Grails的2.3.4排序/的FindAll变化
def o = Domain.findAll(sort: 'lastUpdated')
在Grails的2.2 *,这是工作的罚款,并返回的结果。 。今天,我升级到2.3.4 Grails的,而同样的语法抛出一个错误,指出:
No property found for name [all] for class [sample.Domain]
什么是排序的新语法?
在此先感谢。
在我的申请,我已经整理我的域对象如下:Grails的2.3.4排序/的FindAll变化
def o = Domain.findAll(sort: 'lastUpdated')
在Grails的2.2 *,这是工作的罚款,并返回的结果。 。今天,我升级到2.3.4 Grails的,而同样的语法抛出一个错误,指出:
No property found for name [all] for class [sample.Domain]
什么是排序的新语法?
在此先感谢。
我会用列表:
def results = Domain.list(sort: "lastUpdated")
好,只要我的贴吧,我想通了:Domain.findAll().sort({lastUpdated: 'desc'})
为了该人张贴反对票,请解释。这个方法和zoran119发布的方法都工作并解析为一个'ArrayList'类型的对象。据我所知,没有功能上的差异。卓然的解决方案稍微短一点,所以我现在正在使用这个解决方案,但我想了解您投票背后的理由。 –
可能是因为你正在做你自己的所有排序而不是让你的数据库去做,这会更聪明。去'Domain.list(排序:“lastUpdated”)'。这是做到这一点的方法。 – grantmcconnaughey
关于最后一个注释,它可以创建一个非常糟糕的表演问题:
使用Domain.findAll().sort({lastUpdated: 'desc'})
您可以在排序任何内容之前加载整个表格。这个请求看起来不错,但假设你有大量的数据,你想添加一个最大值和一个偏移量。否则,请求将花费太多时间。
在另一方面,上面一个是好多了:
def results = Domain.list(sort: "lastUpdated")
这样做,你只加载需要的数据......仅此而已,无所不及的量。你可以这样加一个偏移量和最大行数的:
def results = Domain.list(max: 10, offset:10, sort: "lastUpdated")
这不是一个答案,原来的职位,但它解释了为什么之前的评论有一个坏票:)
这似乎也起作用,比我在下面做的要短一些。感谢您的提示。 –