以下は私の2つのクラスです
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句をこの基準に追加すると、longの配列が取得されます。[2,3,4]のように私が欲しいのは[[author1,2]、[author2,3] ...]どうすればこれを達成できますか?すでに見たGrails:多くのテーブルでの投影?、
Grails基準の予測-行数、
GrailsgroupPropertyおよびorderを取得します。使い方?、しかし、答えのどれも私の問題を解決していないようです!