2011-10-27 54 views
0

我通过互联网看,我没有找到我的问题的答案。应该很容易:Grails按小孩查找父母

class Parent { 
    String name 
    Child child 
} 

当我有一个子对象时,如何获取父对象? 像:

高清父= Parent.findByChild(子)

我如何能够通过它的孩子得到一个父对象?

谢谢

回答

3

你在哪里看?

这些域类是什么?如果是这样,那么你就可以通过的has_many和belongs_to的连接它们:

class Parent { 
    String name 
    List children 
    static has_many = [ children: Child ] 
} 

class Child { 
    static belongs_to = [ parent: Parent ] 
} 

然后,你可以只写child.parent

+0

我只有一个孩子,我想知道谁的母公司。所以像def Parent = Parent.findByChild(child)。父母只有一个孩子,并且是两个领域类。我实际上需要一个“选择”方法,通过发送一个孩子来获得父母 –

+0

忘记它,我迷惑了findBy。 所以我只是把这些代码工作 孩童= .... 高清父= findByChild(子) 感谢您的关注凯文 –

+4

这是更常见的是写这些作为的hasMany和属于关联 – doelleri

0

def parent = Parent.findByChild(child)工作正常 - 您可以使用动态查找的标量场(字符串,数字,布尔值,等等)和其他物体。

做反向并找到所有Child情况下,对于一个给定Parent是有点棘手,但可以用HQL来完成:

def p = Parent.get(id) 
def children = Parent.executeQuery(
     'select c from Child c, Parent p where p.child=c and p=:parent', 
     [parent: p])