0

我有以下域类

class Child{
    def age
}

class Parent{
    static hasMany = [children:Child]
}

我想在 HQL 中执行以下操作

Parent.list()
    .sort{ parent -> parent.children.sort{ child -> child.age}[0]}[0..10]

基本上,我想检索按最大孩子的年龄排序的父母列表。并将其限制为仅 10 条记录。我不想从数据库中提取所有父子记录,然后进行必要的排序。我希望 HQL 可以在“数据库层”上执行此操作,并且只返回我需要的结果。谢谢 :)

4

1 回答 1

1
Parent.withCriteria {
        createAlias('children', 'ch', org.hibernate.criterion.CriteriaSpecification.LEFT_JOIN)
        order("ch.age", "desc")
        maxResults(10)

        setResultTransformer(org.hibernate.criterion.CriteriaSpecification.DISTINCT_ROOT_ENTITY)
    }
于 2012-10-02T09:40:50.330 回答