我遇到了从此闭包中获得所需结果的问题
def authors{
results = Message.createCriteria().list {
projections {
author{
groupProperty('id', 'authorId') // 2nd param is alias
property('username', 'username')
}
}
and{
...
...
}
}
[authors:results]
}
我想在我的gsp页面上显示此列表 并希望使用别名访问值 (而上面的条件是返回一个数组列表)
答案 0 :(得分:6)
使用resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP)。
import org.hibernate.criterion.CriteriaSpecification
Message.createCriteria().list {
resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP)
projections {
author{
groupProperty('id', 'authorId')
property('username', 'username')
}
}
}
所有投影都必须有别名。否则,生成的地图将包含空值。
答案 1 :(得分:3)
你可以试试这个
def authors{
results = Message.createCriteria().list {
projections {
author{
groupProperty('id')
property('username')
}
}
and{
...
...
}
}
List authors = results.collect{record -> [authorId : record[0], username:record[1]}
[authors:authors] }