问题
My Question is exactly like Grails Projections not returning all properties and not grouped
I have a following criteria
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")
}
}
Where sharedDocuments is defined as follows
class SharedDocuments {
Users author
Users receiver
Documents file
}
What I have seen is that sharedDocumentsInstanceList always has only the last property mentioned in the projection. I can use the same query in "withCriteria" but I seem to loose the groovy goodness of automatic pagination with it because withCriteria does not return paged pagedresultlist!
回答1:
For the sake of those still having this issue; Remove the provided params
object on the list method. So the criteria query above becomes:
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)
}
回答2:
projections{
author {
groupProperty("id")
property("firstName","firstName")
property("lastName","lastName")
property("emailAddress","email")
}
}
Would using the above approach yield different results? Just a thought...
来源:https://stackoverflow.com/questions/15250974/createcriteria-with-projections-does-not-select-all-columns