是否可以在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上指定排序?
答案 0 :(得分:4)
您可以使用Criteria
执行此操作def criteria = Task.createCriteria()
def taskList = criteria.list {
createAlias("user","_user")
order( "_user.name")
}
答案 1 :(得分:0)
iirc,grails使用toString()排序,因为你没有提供,它使用id。