2012-09-17 34 views
0

根據Grails的(2.1.1)的文件我應該能夠 創建預先定義的,其中象下面這樣的查詢:Grails從哪裏查詢靜態上下文?

class Person { 
    String firstName 
    String lastName 

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

而且使用它像:

Person.simpsons.each { 
    println it.firstName 
} 

但是無論我嘗試,Grails/Java不斷告訴我,我不能從一個靜態引用訪問非靜態內容,我明白 :)但是我怎樣才能實現文檔中描述的內容?我通常使用namedQueries,但我真的很喜歡定義一個where查詢的簡單方法。

回答

0

展望docshere他們沒有什麼特別的靜說where子句,你正試圖從一個靜態內容訪問非靜態的firstName財產,這就是編譯器是想告訴你。

您可能真的對namedQueries感興趣,那可能是您要找的。

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

然後:

Person.simpsons.list().each { 
    println it.firstName 
} 
相關問題