2017-09-06 72 views
0

我有这个类:找到家长通过孩子一对多关系的Grails

class Parent{ 
    static hasMany = [children:Child] 
} 

class Children{ 
    static belongsTo = [Parent] 
} 

我要像做

Parent.findByChildren(ChildInstance) 

在数据库中不存在与关系ID的一个表,但我不知道如何访问它。

但是,这不行,这是正确的方式?

感谢

回答

1

更改您的子类belongsTo子句:

class Children{ 
    static belongsTo = [parent: Parent] 
} 

这将允许您访问chil D的父实例:childInstance.parent

0

首先,我会在儿童领域的关系改变为

static belongsTo = [parent: Parent] // suggested by @bassmartin 

Parent parent 

都做同样的事情。

一旦有ChildInstance和参考父母,你可以简单地做

ChildInstance.parent  // returns instance of parent 

同样,如果你想找到父母的所有孩子,你可以做

parent.children   // return an array of children which you can iterate over. 
+0

孩子没有提及父母,我想避免的是迭代数据库中的所有父母。 –

+0

查看上面的编辑。 – elixir