Groovy/Grails:如何按 id 对对象列表进行排序

Posted

技术标签:

【中文标题】Groovy/Grails:如何按 id 对对象列表进行排序【英文标题】:Groovy/Grails : How to sort the list of objects by id 【发布时间】:2013-10-16 07:52:51 【问题描述】:

公共培训班

class PublicTraining
    static hasMany = [trainingOrder: TrainingOrder]

和 TrainingOrder 类

class TrainingOrder 
    Date createdOn

    static mapping = 
        sort id:"asc"
    

如果我想获得所有培训订单

def orders = publicTrainingInstance.trainingOrder.sort()
println orders // [59,58] (id of orders)

没有排序的顺序

【问题讨论】:

在您的 PublicTraining 域上,最好将其设为“static hasMany = [trainingOrders: TrainingOrder]”,这样,当您将其引用为 publicTrainingInstance.trainingOrders.sortit.id 时,您将清楚地看到您正在处理许多 trainingOrders,而不仅仅是一个。使代码更具可读性。 【参考方案1】:

默认sort()Comparable 对象很有用。如果您的班级不是Comparable,请使用:

def orders = publicTrainingInstance.trainingOrder.sort  it.id 

该代码将使用传递的 id 进行排序。

请参阅文档:http://groovy.codehaus.org/groovy-jdk/java/util/Collection.html#sort()

【讨论】:

以上是关于Groovy/Grails:如何按 id 对对象列表进行排序的主要内容,如果未能解决你的问题,请参考以下文章

在 Groovy/Grails 中使用 JSON 创建对象

如何在 Groovy/Grails 上实现社交网络登录? [关闭]

groovy grails构建测试数据(buildtestdata插件)如何创建多对多

使用 Groovy(Grails) 写入文件对于某些行(断行)失败

Groovy/grails 如何使用 jquery 从视图中调用控制器方法

在 Grails 中使用 Groovy-Eclipse 插件进行开发