2011-10-27 28 views
0

私はインターネットを見て、私はまだ私の質問の答えを見つけませんでした。かなり簡単にする必要があります:Grails子供から親を探す

class Parent { 
    String name 
    Child child 
} 

私は子供オブジェクトを持っていますが、私はそれによって親を得ることができますか? のような:

DEF親= Parent.findByChild(子)

どのように私はそれ子供によって親オブジェクトを取得することができるのですか?

おかげであなたが見ている

答えて

3

これらのドメインクラスはありますか?正常に動作します

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)のようなものです。親には子が1つしかなく、その両方のドメインクラスがあります。私は実際にそれを子供に送信して親を得るための "選択"メソッドが必要です –

+0

それについては、私はfindByミスタイプしていた忘れてしまった。あなたの注意のための だから私はちょうど置くそのコードが 子子= .... デフ親= findByChild(子供を)作品 おかげでケビン –

+4

それはhasManyのとbelongsToのように、これらを記述することがより一般的です – doelleri

0

def parent = Parent.findByChild(child)を書くことができます - あなたはスカラー場(文字列、数値、ブール値、などの動的ファインダーを使用することができます。もしそうなら、あなたはhas_manyのとbelongs_toのを経由して、それらを接続することができます。)と他のオブジェクト。

逆をやって、与えられたParentのすべてのChildのインスタンスを見つけるには、もう少し複雑ですが、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]) 
関連する問題