假设我希望搜索一个 grails 域对象,并且参数值位于名称与对象的属性名称匹配的局部变量中:
def getPerson(String firstName, String lastName) {
Person person = Person.where {
firstName == firstName
lastName == lastName
}
}
如何编写查询以便找到属性与局部变量值匹配的人?
假设我希望搜索一个 grails 域对象,并且参数值位于名称与对象的属性名称匹配的局部变量中:
def getPerson(String firstName, String lastName) {
Person person = Person.where {
firstName == firstName
lastName == lastName
}
}
如何编写查询以便找到属性与局部变量值匹配的人?
如果我是你,我会避免命名我的方法参数,例如我的类属性。然后您的 GORM 查询可能如下所示:
def getPerson(String firstName, String lastName) {
def query = Person.where {
(firstName == p_firstName) && (lastName == p_lastName)
}
def results = query.list();
}
你可以看看这里:http ://www.grails.org/doc/latest/guide/GORM.html#whereQueries
delegate
我相信您可以按如下方式使用隐式变量:
def getPerson(String firstName, String lastName) {
Person person = Person.where {
delegate.firstName == firstName
delegate.lastName == lastName
}
}
编辑:根据规范/测试用例,这不是必需的,但我发现明确使用delegate
更容易阅读/理解。