2015-06-26 41 views
1

我正在使用Grails RestfulController,並碰到文檔9.1.5.1(https://grails.github.io/grails-doc/latest/guide/single.html#extendingRestfulController)中的奇怪查詢,它具有id == id:關於RestfulController的Grails文檔:嵌套資源查詢包含id == id

@Override 
protected Book queryForResource(Serializable id) { 
    Book.where { 
     id == id && author.id = params.authorId 
    }.find() 
} 

最初以爲這是一個在doco中的問題,但實際上編寫的代碼,它確實只適用於id == id。 Codenarc也檢測到奇怪的比較,生成的Hibernate查詢具有預期的效果。 任何人都可以幫助我理解它嗎?謝謝。

回答

0
id == id 
|___| |___| 
    |  | 
    |  | 
    |  id value passed as method parameter 
    | 
id property from domain class 

where查詢或DetachedCriteria表達式的左側總是從域類的屬性的參考。

類似:

select a from Author as a where a.id = :id 

其中:id將在參數傳遞給查詢