2011-07-14 6 views
1

私はtRNAクラスを持っていますが、これには関連するgrRNAがあるかもしれませんが、cRNAに関連しています。Grailsとのゼロから多関係

だから私はこの関係を持つことができます。
のtRNA - > grRNA - > cRNAを

またはこの関係(このケースでは、我々はgrRNAデータを持っていない):
のtRNA - > cRNAを

Grails/Gormを使用してこの関係を実装する最良の方法は何ですか(grRNAがないことがあります)。 ドメインクラスのデザインに最適ですか?

答えて

1

grRNAとcRNAを親のサブクラスとし、tRNAを親と、grRNとcRNAとを関連付けることができます。

データベーステーブルでは、クラスを定義するにはclassカラムが必要です(GORMオブジェクトにdiscriminator)。

編集: ような何か:

class GenericRna { 
    //Properties 
    //Assuming this is mapped to a database table as well, you'd need: 
    static mapping = { 
     table 'generic_rna' 
     discriminator column: 'class' 
    } 
} 

class CRna extends GenericRna { 
    //Properties 
    discriminator value: 'CRna' 
} 

class GrRna extends GenericRna { 
    //Properties 
    static hasMany = [cRnas: CRna] 
    discriminator value: 'GrRna' 
} 

class TRna { 
    static hasMany = [genericRnas: GenericRna] 
} 

技術的に私はあなたが値としてご識別子列名として「クラスの、クラス名を使用する場合は、「弁別を必要としないことを信じています'行。

+0

追加されました。これは今より意味がありますか? – Igor

+0

はい、感謝します、ありがとう。このリンクも便利です:http://www.grails.org/doc/latest/ref/Database%20Mapping/discriminator.html –