【问题标题】:How to convert between GRAILS' class column and hibernate's DTYPE column in GORMGORM中如何在GRAILS的class列和hibernate的DTYPE列之间进行转换
【发布时间】:2012-12-03 04:10:35
【问题描述】:

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

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

【问题讨论】:

  • 您想要更改的映射具体是什么?列名、数据类型等??
  • 我想我需要更改列名以及每个类映射到的值。但我认为下面的答案提供了帮助。

标签: java hibernate grails mapping grails-orm


【解决方案1】:

您可以自定义用于鉴别器列的名称in the base class mapping closure

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

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

class ChildClass {
  …
  static mapping = {
    discriminator "child"
  }
}

【讨论】:

  • 嗯。我以为我已经尝试过了。好的,过几天再试。感谢您的支持。
【解决方案2】:

如果您已经有一个 DB 架构,您可以尝试使用 Grails Database Reverse Engineering Plugin 从您的架构生成您的 Grails 域类。

【讨论】:

    猜你喜欢
    • 2011-09-17
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 2017-03-16
    • 2013-02-15
    相关资源
    最近更新 更多