2013-12-09 102 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