0

根据 Grails (2.1.1) 文档,我应该能够创建预定义的 where 查询,如下所示:

class Person {
    String firstName
    String lastName

    static simpsons = where {
         lastName == "Simpson"
    }
    …
}

并像这样使用它:

Person.simpsons.each {
    println it.firstName
}

但是无论我尝试什么,Grails/Java 一直告诉我,我无法从我理解的静态引用中访问非静态内容:) 但是我怎样才能实现文档中描述的内容?我通常使用 namedQueries,但我真的很喜欢定义 where 查询的易用性。

4

1 回答 1

0

查看文档在这里他们没有说什么关于静态 where 子句的特别之处,您正试图从静态内容访问非静态firstName属性,这就是编译器试图告诉您的。

您可能对namedQueries非常感兴趣,这可能就是您正在寻找的。

static namedQueries = {
       simpsons {
           eq(lastName,"Simpson")
       }
}

接着:

Person.simpsons.list().each {
    println it.firstName
}
于 2012-10-23T14:07:29.207 回答