我在createCriteria中遇到投影问题

Muh*_*lib 1 grails groovy createcriteria

我遇到了从这个闭包中获得所需结果的问题

def authors{
    results = Message.createCriteria().list {
        projections {
            author{
                groupProperty('id', 'authorId') // 2nd param is alias
                property('username', 'username')
            }
        }

        and{
            ...
            ...
        }
    }

    [authors:results]
}
Run Code Online (Sandbox Code Playgroud)

我想在我的gsp页面上显示这个列表,并希望使用别名访问这些值(而上面的条件是返回一个数组列表)

Ser*_*yev 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')
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所有投影都必须有别名.否则,生成的映射将包含空值.