我的问题完全一样 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!
答案 0 :(得分:2)
为了那些仍然有这个问题的人;删除列表方法中提供的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)
}
答案 1 :(得分:0)
projections{
author {
groupProperty("id")
property("firstName","firstName")
property("lastName","lastName")
property("emailAddress","email")
}
}
使用上述方法会产生不同的结果吗?只是一个想法...