2012-05-16 16 views
4

我有一張表叫做員工和子表的地址。使用GORM對子表中的列進行排序?

現在我想要使用GORM獲取在地址表中按地址1排序的員工列表。

Employee.findAllByName(name, [max: maxRecords, offset: 100,sort: Address.address1, order: desc]) 

上述聲明不起作用,任何建議,將不勝感激。

感謝

+1

我會看看這個:http://grails.org/doc/latest/guide/GORM.html#defaultSortOrder看起來你可能能夠在Employee Mapping中定義一個默認排序。 –

+0

'sort'參數必須是要排序的字段的名稱。如果您打算按其他表中的屬性進行排序,則應該使用標準或HQL。 – GalmWing

回答

7

嘗試使用criteria查詢是這樣的...

def c = Employee.createCriteria() 
def results = c.list (max: maxRecords, offset: 100) { 
    eq("name", name) 
    address { 
     order("addres1", "desc") 
    } 

} 

這對我的作品!

另一個選項是添加默認的排序順序,像這樣......

class Address{ 
    … 
    static mapping = { 
     sort address1:"desc" 
    } 
} 

然而,我總是喜歡做的事情作爲一個「按需」的基礎上,而不是定義排序即使在不需要時也可以每次完成。 U選擇。請享用!

+0

感謝Michael,但是如果我從請求中動態地傳遞排序順序,它會起作用嗎? –

+1

當然...訂單(「address1」,「$ {params.sortOrder}」) –

+0

謝謝Michael ... –

相關問題