0

ClassA と ClassB の 2 つのクラスがあります。

class ClassA{
    String userName
    String passwd

    .....
}

class ClassB extends ClassA{
    String address_line1
    String address_line2

    .....
}

私が質問している場合

ClassA obj = ClassA.get(1)

ClassB のインスタンスを取得しています。ClassA の実際のインスタンスを取得するにはどうすればよいですか。

ありがとう

ニミー..

4

1 に答える 1

0

次のようなコードを使用する必要があります。

def obj = ClassA.get( 1 )

GORMの落とし穴の1つにぶつかると、SpringSourceブログによる必読の記事があります:http://blog.springsource.org/2010/07/28/gorm-gotchas-part-3/ チャプタープロキシ)。3つの記事すべてを読むことをお勧めします!あなたは理解するでしょう、ボンネットの下で何がはるかに良くなっているのか:-)

追加情報。デフォルトでは、Grailsはクラス階層をマッピングするときに「テーブルごとの階層」戦略を使用しているため、ClassBを作成する場合は、ClassAと同じテーブルに保存されるため、同じ主キー列を共有します。そのため、ClassAではなくClassBを取得します。GORMは、タイプ列に基づいて正しいクラスインスタンスを返します。この列には、必要な行に格納されている階層のクラスである情報が含まれています。ただし、必要に応じて、明示的に再入力できます;-)

于 2013-02-10T17:59:18.230 に答える