开发者

Sorting query results according to parent property in grails

Is it possible in grails to sort query results according to a property of a parent c开发者_开发百科lass in a relationship. E.g. I have a user domain class which has a one to many relationship with a list of Tasks.

When showing the list page of the Tasks domain class, I want to be able to sort the list of tasks by the associated User name.

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]
}

I can do something like this

Task.list([sort:"user", order:"asc"])

But this sorts by the user.id, is there a way to specify the sort to be on the user.name?


You can do it using Criteria

def criteria = Task.createCriteria()
def taskList = criteria.list {
    createAlias("user","_user")
    order( "_user.name")
}


iirc, grails sorts by using toString() and since you have not supplied one, it uses the id.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜