以下是我的两节课
class Users {
String emailAddress
String password
// String filename
String firstName
String lastName
Date dateCreated
Date lastUpdated
}
和
class SharedDocuments {
Users author
Users receiver
Documents file
static constraints = {
}
}
我想运行一个类似于这个的查询,本质上我想获取所有用户的列表以及他们创作的文档数量
SELECT author_id, COUNT(SharedDocuments.id )FROM SharedDocuments
INNER JOIN users ON author_id = users.id
GROUP BY author_id
这是我到目前为止所拥有的
def sharedDocumentsInstanceList = SharedDocuments.createCriteria().list(params){
createAlias("author","a")
eq("receiver.id",session.uid)
projections{
groupProperty "author"
count "id",'mycount'
}
order('mycount','desc')
maxResults(params.max)
}
如果我摆脱count
或countDistinct
获得不同作者的列表,我有这 90% 的工作,但我想要的是作者以及文档数量。因此,当我将 count 或 countDistinct 子句添加到此标准时,我只会得到 long 数组!像 [2,3,4] 我想要的是 [[author1,2],[author2,3] ...] 我怎样才能实现这个我已经看过Grails:在许多表上的投影?,
Grails 标准预测 - 获取行数,
Grails groupProperty 和 order。这个怎么运作?,但似乎没有一个答案能解决我的问题!