如何继承非域类GORM映射?(How to inherit GORM mapping from no

2019-10-18 02:56发布

永久我有一些表和一些Hibernate类与映射的注释。 而这个班有映射的注释也是抽象的超类。 但在这个超有没有表关联映射。 所有的表都在子类中确定。 我试图迁移该映射GORM模型。 但是,所有的策略:TablePerHierarchy和TablePerSubclass没有我的情况,因为在创建所有表和不能改变的办法。 我在创建超“的src /常规/ 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”两个表。

Answer 1:

它使用克隆和代理人功能是可能的。 这是我做的:

class B extends A {

static mapping = {
    def copyMapping = A.mapping.clone()
    copyMapping.delegate = delegate
    copyMapping.call()
    }
}


Answer 2:

这个现在可以做了一些更直接主动:

class B extends A {
  static mapping = {
    includes A.mapping
  }
}


文章来源: How to inherit GORM mapping from non domain class?