2

我有两个域模型:

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”进行排序?这是一套持久化的hibernate!我认为这可以用映射排序名称来处理:'asc',但它不起作用:-(

4

2 回答 2

1

尝试,item.resources.sort { it.name }_"asc"

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

于 2014-07-14T13:26:10.057 回答
0

您不能对一对多或多对多关系进行默认排序。请参阅此处的文档,特别注意底部的注释:

这些映射不适用于默认的单向一对多或多对多关系,因为它们涉及连接表。有关详细信息,请参阅此问题。考虑使用 SortedSet 或带有排序参数的查询来获取您需要的数据。

您指定的默认排序实际上对Resource对象列表进行排序(即,如果您得到这样Resource.getAll()的列表,则列表将按照您指定的顺序排序)。

做你想做的考虑创建一个选项卡库,正如 Don 建议的那样

于 2011-12-09T07:04:28.660 回答