给定以下类:
简化示例:
class Query {
Institution institution
}
class Institution {
String name
}
提交以下参数:
query.institution.id=20
和 query.institution.name=Example
我想只包含机构 id 并忽略名称绑定(bind)到查询的机构实例。
是否可以使用 bindData 显式包含像这样嵌套多个级别的关联实例?
除了将前缀用于单级嵌套之外,我还没有看到任何示例,以下似乎不起作用:
简化示例:
bindData(queryInstance, params, [include: [
'institution.id',
]], 'query')
最佳答案
最佳实践是通过命令对象过滤您的请求参数,然后可以使用该命令对象生成任何类型的查询。
Command cmd = Command.getInstance()
bindData(cmd, request.params)
if (cmd.validate()) Query query = cmd.generateQuery()
通过这种方式,您可以获得仅绑定(bind)到您在命令对象上公开的字段的好处,同时验证和转换传入数据而不涉及您的域。
关于grails - bindData 包含嵌套参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31969582/