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

时间:2010-08-29 10:03:05

标签: grails groovy gorm

是否可以在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上指定排序?

2 个答案:

答案 0 :(得分:4)

您可以使用Criteria

执行此操作
def criteria = Task.createCriteria()
def taskList = criteria.list {
    createAlias("user","_user")
    order( "_user.name")
}

答案 1 :(得分:0)

iirc,grails使用toString()排序,因为你没有提供,它使用id。