Hibernate 按投影聚合列对结果集进行排序

Hibernate 按投影聚合列对结果集进行排序,hibernate,sorting,groovy,Hibernate,Sorting,Groovy,我使用Hibernate已经有一段时间了,但我只是在不久前才遇到这个场景,所以它就在这里。我有一个父子域类,比如说Person,它可以创建一个或多个项s,如下所示: class Person { Integer id Integer craftingMaxCap String name static hasMany = [ items: Item ] } class Item { Integer id String na

我使用Hibernate已经有一段时间了,但我只是在不久前才遇到这个场景,所以它就在这里。我有一个父子域类,比如说
Person
,它可以创建一个或多个
s,如下所示:

class Person {
    Integer id
    Integer craftingMaxCap
    String name

    static hasMany = [
        items: Item
    ]
}

class Item {
    Integer id
    String name 

    static belongsTo = [
        creator: Person
    ]
}
在UI端,我显示了该人员的姓名、当前制作的物品数量以及允许制作的最大物品数量。而我在后端进行分页和排序

虽然我可以轻松地将第一列和最后一列排序为:

ArrayList<Person> data = Person.createCriteria().list {
    //...
    order("name", "asc")
    // or order("craftingMaxCap", "asc")
}
ArrayList data=Person.createCriteria().list{
//...
订单(“名称”、“asc”)
//或订单(“craftingMaxCap”、“asc”)
}
如何按每人制作的项目数对结果集进行排序?我可以通过
JSONMarshaller
显示该列,但我无法对其排序。我目前正在通过冗长的
Collection.sort
方法来实现这一点,但我想知道是否可以通过利用Hibernate投影、Groovy闭包等在数据库端实现这一点

我从一个不同的问题中找到了答案,但我不知道如何在Groovy中用另一个别名实现
投影