根据grails中的父属性对查询结果进行排序

根据grails中的父属性对查询结果进行排序,grails,groovy,gorm,Grails,Groovy,Gorm,在grails中,是否可以根据关系中父类的属性对查询结果进行排序。例如,我有一个用户域类,它与任务列表有一对多的关系 在显示Tasks域类的列表页面时,我希望能够按照关联的用户名对任务列表进行排序 class User { String name String login String group List tasks = new ArrayList() static hasMany = [tasks:Task] } class Task { S

在grails中,是否可以根据关系中父类的属性对查询结果进行排序。例如,我有一个用户域类,它与任务列表有一对多的关系

在显示Tasks域类的列表页面时,我希望能够按照关联的用户名对任务列表进行排序

class User {
    String name
    String login
    String group
    List tasks = new ArrayList()
    static hasMany = [tasks:Task]
}

class Task {
    String summary
    String details
    User user
    static belongsTo = [user:User]
}
我可以这样做

Task.list([sort:"user", order:"asc"])
但是这是按user.id排序的,有没有办法指定要在user.name上进行的排序?

您可以使用


iirc,grails使用toString()进行排序,因为您没有提供一个,所以它使用id。

很酷,工作起来很有魅力。知道如何使排序不区分大小写吗?没关系,在hibernate文档中找到了它,显然我只是在顺序中添加了.ignoreCase(),就像这样的顺序(“\u user.name”)。ignoreCase()但是,这在设置对象的默认排序顺序方面不起作用,这似乎是皇家的痛苦。创造别名的目的是什么?
def criteria = Task.createCriteria()
def taskList = criteria.list {
    createAlias("user","_user")
    order( "_user.name")
}