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

cod*_*rer 3 grails groovy grails-controller grails-domain-class

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

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

class Child {
    static belongsTo = [parent:Parent]
    String name
    Date dateCreated
}
Run Code Online (Sandbox Code Playgroud)

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

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

    withFormat{
        json {render result as JSON}
        xml {render result as XML} 
    }
}
Run Code Online (Sandbox Code Playgroud)

并且上述工作(父项按创建日期排序)但我不确定如何按列表中创建的日期对所有子项进行排序。

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

Gre*_*egg 5

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

static mapping = {
  children sort: 'dateCreated'
}
Run Code Online (Sandbox Code Playgroud)

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

def sortedChildren = parent.children.sort { it.dateCreated }
Run Code Online (Sandbox Code Playgroud)

我不知道是否有更高级的“grailsier”方式通过查找器或标准来做到这一点。