我的问题就像
Grails Projections not returning all properties and not grouped

我有以下标准

def sharedDocumentsInstanceList SharedDocuments.createCriteria().list(params){
   createAlias('receiver', 'r')
   createAlias('author', 'a')
   eq("r.id",session.uid)
   projections{
      groupProperty("a.id")
      property("a.firstName","firstName")
      property("a.lastName","lastName")
      property("a.emailAddress","email")
   }
}

其中sharedDocuments定义如下
class SharedDocuments {
   Users author
   Users receiver
   Documents file
}

我所看到的是sharedDocumentsInstanceList总是只有投影中提到的最后一个属性。我可以在“withCriteria”中使用相同的查询,但由于withCriteria不会返回分页的pagedresultlist,因此似乎无法使用它的自动分页功能。

最佳答案

为了那些仍然有这个问题的人;删除list方法上提供的params对象。因此,上面的条件查询变为:

def sharedDocumentsInstanceList = SharedDocuments.createCriteria().list {
    createAlias('receiver', 'r')
    createAlias('author', 'a')
    eq("r.id",session.uid)
    projections {
        groupProperty("a.id")
        property("a.firstName","firstName")
        property("a.lastName","lastName")
        property("a.emailAddress","email")
    }
    maxResults(params.max)
    firstResult(params.offset)
    order(params.sort, params.order)
}

10-07 14:17