2013-12-09 155 views
1
class Client { 
    String name 
    static hasMany = [courses:Course] 
} 

class Course { 
    String name 
    static belongsTo = [client:Client] 
} 

我有這個,我想所有客戶具有課程 =「布拉布拉」搜索和獲取包含與價值孩子所有父母

我試着要做到:Clients.findWhere(當然啦{當然 - > course.name = 「數學」})

回答

2

你可以用標準做到這一點:

Client.withCriteria { 
    courses { 
    eq('name', 'math') 
    } 
} 

我認爲有以下地方查詢等效於上述標準:

Client.where { courses.name == 'math' } 

或者你會發現你需要另一個封閉:

Client.where { 
    courses { 
    name == 'math' 
    } 
} 

,但我很少使用,其中查詢自己,所以我」這不是100%肯定的。

1

可能有很多不同的語法表達式來實現相同的功能。我可以肯定地說,這在我的項目中起作用。

def ls = Client.list { 
    courses { 
     eq('name','math') 
    } 
} 
+0

它返回一個錯誤「沒有方法的簽名:Test.Client.list()適用於參數」..其中代替列表適用於我,我使用的是Grails 2.1.0 – daigoor