Grails域类id继承

时间:2012-06-21 08:41:31

标签: grails abstraction grails-domain-class

我有四个具有共同属性transID, createdDate的域类,其中transID已键入int并映射为表的主键。通过抽象规则,我们将公共属性/属性分离为抽象类,然后让子类(在我的例子中是我拥有的四个域类)继承它们或extends它。

在我的抽象类中包含两个属性transID, createdDate,但由于transID被设置为四个子类的主键,因此我在抽象类中格式化了这个映射。

static mapping = {
  id generator: 'increment',
     name: 'transID',
     column: 'transID',
     type: int
}

我在运行项目时没有错误,但是当我检查dbconsole上的表时,我看不到与四个域类有关的四个表但我只看到具有该属性的抽象类第一个孩子。

有没有办法抽象提到的域类的id,或者我必须将它映射到子类而不是将它放在抽象类中。

感谢。

1 个答案:

答案 0 :(得分:1)

默认情况下,GORM使用每个类层次结构的表,因此您只有一个表 - 如果您希望每个子类有一个表 - 您可以使用GORM DSL进行配置 - 请参阅Inheritance in gorm

但是在过度使用每个子类的表之前要小心。