【问题标题】:Sorting Parent and Child in Grails Controller在 Grails 控制器中对父子元素进行排序
【发布时间】:2014-01-27 02:12:05
【问题描述】:

您好,我正在尝试在渲染 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

【问题讨论】:

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


    【解决方案1】:

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

    static mapping = {
      children sort: 'dateCreated'
    }
    

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

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

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

    【讨论】:

    • 我喜欢 grailsier 方式:)。是否有排序 desc 与 asc 的选项?
    • Docs say you can, sort varName: "asc"sort varName: "desc"
    • 由于某种原因,排序在控制器和域类上都不起作用。这是一个已知问题吗?每次我刷新时,顺序都会不断变化。
    猜你喜欢
    • 2012-12-26
    • 2020-05-30
    • 2016-03-02
    • 2018-07-31
    • 1970-01-01
    • 2021-08-12
    • 2019-09-01
    • 1970-01-01
    • 2016-09-25
    相关资源
    最近更新 更多