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”。

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 回答