2011-10-27 53 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])