1

我有以下问题。我得到了一个由 Java 中的 JPA/Hibernate 生成的数据库模式。我有一个用于继承层次结构的表。为此,Hibernate 使用 DTYPE 列来区分层次结构中类的具体实现。

我现在需要将相同的层次结构加载到 GRAILS 域对象。但是 GRAILS 使用名为“类”的列来保存具体实现的名称,我无法找到任何方法来更改此映射。所以我的问题是:有没有办法将 GRAILS 的“类”列映射到 Hibernate 的 DTYPE 列?

4

2 回答 2

3

您可以自定义用于基类mapping闭包中的鉴别器列的名称。

class TopOfTheHierarchy {
  …
  static mapping = {
    discriminator column: "DTYPE"
  }
}

要使用类名以外的其他内容作为鉴别器,您可以为每个子类使用类似的映射条目

class ChildClass {
  …
  static mapping = {
    discriminator "child"
  }
}
于 2012-12-15T15:01:37.153 回答
0

如果你已经有一个数据库模式,你可以尝试使用Grails 数据库逆向工程插件从你的模式生成你的 Grails 域类。

于 2012-12-15T14:36:18.607 回答