我在尝试计算项目时遇到了一些问题。
想象以下域类
class Book {
String name
}
class Author {
String name
static hasMany = [books:Book]
}
如何获取按图书数量排序的作者列表?
这是我的尝试:
def c = Author.createCriteris()
c.list {
projections {
count 'books', 'numBooks'
groupProperty 'id'
}
order 'numBooks', 'desc'
}
但不知怎的,我只得到了无法使用的结果...而且我不知道如何将 Author 对象加入到结果列表中...:-(
最佳答案
还没有尝试过,但你不能这样做:
class Author {
String name
static hasMany = [books:Book]
static namedQueries = {
sortByMostBooks {
books {
order('size', 'desc')
}
}
}
}
然后通过清洁器命名查询获取访问权限
Author.sortByMostBooks.list();
此外,您可能希望在 Book 域类中包含一个 ownTo:
static belongsTo = Author;
或者:
static belongsTo = [authors:Author];
如果一本书可能有多个作者
关于grails - 标准搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10955716/