Hibernate 按投影聚合列对结果集进行排序
我使用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
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中用另一个别名实现投影