以下是我的两个类:
而且
我已经完成了90%的工作,如果我去掉
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)
}
我已经完成了90%的工作,如果我去掉
count
或countDistinct
,我将得到不重复作者列表,但我想要的是作者以及他们所写文档的数量。因此,当我将count或countDistinct子句添加到这个条件中时,��只会得到一个长数组!类似于[2,3,4],我想要的是[[author1,2],[author2,3]...]。我该如何实现这个目标?我已经看过Grails: Projection on many tables?,Grails criteria projections - get rows count, Grails groupProperty and order. How it works?,但是没有一个答案似乎解决了我的问题!