在我的申請,我已經整理我的域對象如下: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")
這不是一個答案,原來的職位,但它解釋了爲什麼之前的評論有一個壞票:)
這似乎也起作用,比我在下面做的要短一些。感謝您的提示。 –