2011-12-09 21 views
2

我有兩個域模型:如何排序的Grails對象persistentSet?

class Resource{ 
    String name 

    static mapping = { 
       sort name:"asc" 
      } 
} 

class ResourceGroup{ 
    String groupName 

    static hasMany = [resources: Resource] 
} 

控制器:

def resGroups = ResourceGroup.findAll() 
render (
     view: "index", 
     model: [resourcegroups: resGroups] 
) 

所以,現在在我的GSP:

<g:each in="${resourcegroups}" var="item" status="i"> 
    ... 
    <g:each in="${item.resources}" var="res" status="y"> 
     <!-- THESE ITEM.RESOURCES ARE UNSORTED! --> 
    </g:each> 
    ... 
</g:each> 

我的問題是我怎麼能這樣「item.resources排序「?這是一個持續的一套休眠的!我想這可能與映射排序名稱進行處理:「ASC」,但:-(

回答

0

你不能有一個默認的排序在一個一對多或多對一一對多的關係這是行不通的。見documentation here,那個說底部要特別注意說明:因爲涉及連接表

這些映射不會爲默認單向一個一對多或多對多一對多關係看到工作this issue有關更多詳細信息,請考慮使用SortedSet或使用排序參數查詢來獲取所需的數據。

默認的排序,你實際上已經指定的排序確實Resource對象的列表(即如果你有列表這樣Resource.getAll()名單會在排序時指定的順序)。

做你想做的考慮創建一個標籤LIB作爲唐表明here什麼。

1

嘗試item.resources.sort { it.name }"asc"

"desc"

item.resources.sort { it.name }.reverse()