Grails HQL按子列表中的最大项排序
我有以下域类Grails HQL按子列表中的最大项排序,grails,hql,Grails,Hql,我有以下域类 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条记录。我不想从数据库中提取所有父记录
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可以在“数据库层”上执行此操作,并且只返回我需要的结果。谢谢:)
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)
}