在Grails控制器中对父和子进行排序

时间:2014-01-08 19:27:48

标签: grails groovy grails-domain-class grails-controller

您好我正在尝试在渲染json文件之前在父级和子级的控制器中执行排序,但我不确定如何去做。这就是我所拥有的(原始代码的摘录):

class Parent{
    static hasMany = [children:Child]
    String name
    Date dateCreated
}

class Child {
    static belongsTo = [parent:Parent]
    String name
    Date dateCreated
}

在我的控制器.groovy文件中,我有:

def list(){
    def result = Parent.listOrderByDateCreated(order: "desc")
    .... more code ....

    withFormat{
        json {render result as JSON}
        xml {render result as XML} 
    }
}

以及上述作品(父作品按创建日期排序)但我不知道如何按照列表中创建的日期对所有孩子进行排序。

提前感谢您的帮助。我也在使用Grails 2.3.2

1 个答案:

答案 0 :(得分:4)

一种方法是假设您总是希望子项按dateCreated排序。将以下内容添加到您的父域:

static mapping = {
  children sort: 'dateCreated'
}

另一种方法是在提取结果后进行排序:

def sortedChildren = parent.children.sort { it.dateCreated }

如果通过发现者或标准有更好的“grailsier”方式,我不知道。