假设我想搜索一个grails域对象,参数值在局部变量中,其名称与对象的属性名称匹配:
def getPerson(String firstName, String lastName) {
Person person = Person.where {
firstName == firstName
lastName == lastName
}
}
如何编写查询以便找到属性与局部变量值匹配的人?
答案 0 :(得分:0)
我相信您可以使用隐式delegate
变量,如下所示:
def getPerson(String firstName, String lastName) {
Person person = Person.where {
delegate.firstName == firstName
delegate.lastName == lastName
}
}
修改:根据spec / test case,这不是必需的,但我发现明确使用delegate
更容易阅读/理解。
答案 1 :(得分:0)
如果我是你,我会避免命名我的方法参数,例如我的类属性。 然后您的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