Grails从静态上下文查询到哪里?

Grails从静态上下文查询到哪里?,grails,gorm,Grails,Gorm,根据Grails(2.1.1)文档,我应该能够 创建预定义的where查询,如下所示: class Person { String firstName String lastName static simpsons = where { lastName == "Simpson" } … } 然后像这样使用它: Person.simpsons.each { println it.firstName } 不管我怎么做,Grail

根据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查询的简单易用性。

看一下,它们并没有特别提到静态where子句,您正试图从静态内容访问非静态firstName属性,这就是编译器试图告诉您的

你可能真的很感兴趣,这可能是你正在寻找的

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

Person.simpsons.list().each {
    println it.firstName
}