1

永続的に、いくつかのテーブルと、マッピング アノテーションを含むいくつかの休止状態のクラスがあります。また、このクラスには、マッピング アノテーションを含む抽象スーパークラスもあります。ただし、このスーパークラスには、テーブル関連付けのマッピングはありません。すべてのテーブルはサブクラスで識別されます。このマッピングを GORM モデルに移行しようとしています。しかし、すべての戦略: TablePerHierarchy と TablePerSubclass は、すべてのテーブルが作成され、変更できないため、私の場合にはアプローチしません。「src/groovy/somepackage/」にスーパークラスを作成し、このクラスから「ドメイン」フォルダーのサブクラスにマッピングと制約を継承したいと考えています。制約の場合はうまく機能しますが、マッピングの場合、これを行う方法に関するドキュメントが見つかりません。誰にもアイデアはありますか?

非ドメイン フォルダー:

absract class A {
  String a
  static mapping = {
    a column: "column_A"
  }
} 

ドメイン フォルダ内:

class B extends A {
  String b
  static mapping = {
    b column: "column_B"
  }
}

class C extends A {
  String c
  static mapping = {
    c column: "column_C"
  }
}

それぞれに列「column_A」を持つ 2 つのテーブルを取得する必要があります。

4

2 に答える 2

4

クローンおよびデリゲート機能を使用して可能です。これが私がしたことです:

class B extends A {

static mapping = {
    def copyMapping = A.mapping.clone()
    copyMapping.delegate = delegate
    copyMapping.call()
    }
}
于 2013-08-20T15:54:05.663 に答える
1

これは、もう少し簡単に実行できるようになりました。

class B extends A {
  static mapping = {
    includes A.mapping
  }
}
于 2016-02-20T02:14:51.727 に答える