grails 1.2.1 の GORM を使用しています。この時点でアップグレードの可能性はありません。これ自体は Grails アプリではありません。むしろ、Groovy を使用し、GORM を活用してドメイン モデルの永続性を容易にする Web アプリケーションです。
次のようなクエリがあります。
actionsByUser = UserAction.createCriteria().list() {
projections {
countDistinct('id', 'userCount')
groupProperty('user')
}
firstResult(offset)
maxResults(max)
order('userCount', 'desc')
}
結果の数を示し、結果の次のページを表示するために次のリンクをいつ表示するかを教えてくれる getTotalCount メソッドを含む PagedResultList は返されません。
代わりに次のようなことを試しました:
actionsByUser = UserAction.createCriteria().list(max:max, offset:offset) {
projections {
countDistinct('id', 'userCount')
groupProperty('user')
}
order('userCount', 'desc')
}
list
つまり、Closure 内で DSL を使用するのではなく、最初の Map パラメータを介して max パラメータと offset パラメータを に渡すように変更します。
それは失敗します:
org.hibernate.QueryException: could not resolve property: userCount of: example.domain.UserAction
at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:67)
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:61)
at org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber(AbstractEntityPersister.java:1392)
at org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns(BasicEntityPropertyMapping.java:54)
at org.hibernate.persister.entity.AbstractEntityPersister.toColumns(AbstractEntityPersister.java:1367)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumns(CriteriaQueryTranslator.java:457)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumnsUsingProjection(CriteriaQueryTranslator.java:417)
at org.hibernate.criterion.Order.toSqlString(Order.java:68)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getOrderBy(CriteriaQueryTranslator.java:371)
at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:113)
at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:82)
at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:91)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1578)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
at grails.orm.HibernateCriteriaBuilder.invokeMethod(HibernateCriteriaBuilder.java:1025)
"page 1 of n" 機能を実行するのに適した結果を grails から取得するにはどうすればよいですか?
更新:提案どおり Grails JIRAで発生 - #grails on freenode で応答がありませんでした。