grails:按嵌套属性排序

时间:2014-06-08 09:11:19

标签: grails gorm

是否可以使用查询

按嵌套属性进行排序

我有2个域类:

class Parent {
    String name
    Child child
}

class Child {
    String name
    static belongsTo = [parent: Parent]
}

这有效:

Parent.where {}.list(sort: 'name')

而这不是:

Parent.where {}.list(sort: 'child.name')

我有一个错误:

could not resolve property: child.name of: Parent

我使用的是grails 2.3.x

1 个答案:

答案 0 :(得分:10)

请参阅:Grails - sort by the domain relation attribute (using createCriteria())

解决方案1:

    def criteria = Child.createCriteria();
    println criteria.list{
        createAlias("parent","_parent")
        order( "_parent.name")
    }

解决方案2:

    def criteria = Child.createCriteria();
    println criteria.list{
        parent {
            order("name")
        }
    }

解决方案3:

class Child {
    String name
    static belongsTo = [parent: Parent]

    public String getParentName(){
        return parent.getName()
    }
}

println Child.listOrderByParentName()

希望它有所帮助。