Grails 2.5.0 - 设置元参数?

Grails 2.5.0 - metaParams on Set?

我有以下 class:

class User {
...
static hasMany = [data: MyData]
...
}

我想在 User 对象上获取 user.data,但使用 findAllBy (https://grails.github.io/grails-doc/latest/ref/Domain%20Classes/findAllBy.html) 中的元参数过滤返回的列表。

这可能吗?

使用条件查询,您可以执行如下操作:

def id = /* some User.id here */

// http://grails.github.io/grails-doc/2.1.0/ref/Domain%20Classes/createCriteria.html
def data = User.createCriteria().list(max: 10, offset: 100) {
    projections {
        property 'data'
    }

    eq 'id', id

    order 'something', 'desc'
}

如果您最终遇到重复的 MyData 实例,请尝试改用 HQL。像这样:

// https://grails.github.io/grails-doc/latest/ref/Domain%20Classes/executeQuery.html
User.executeQuery 'select distinct u.data from User as u where u.id = :id', [id: id, max: 10, offset: 5]