在 Grails 控制器中对父子元素进行排序
Posted
技术标签:
【中文标题】在 Grails 控制器中对父子元素进行排序【英文标题】:Sorting Parent and Child in Grails Controller 【发布时间】: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
【问题讨论】:
【参考方案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" 由于某种原因,排序在控制器和域类上都不起作用。这是一个已知问题吗?每次我刷新时,顺序都会不断变化。以上是关于在 Grails 控制器中对父子元素进行排序的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Grails 2.0 服务中对 i18n 注入 messageSource 的使用进行单元或集成测试
如何在 Play Framework 模板中对列表进行排序?