java - 如何在GORM中GRAILS的类列和hibernate的DTYPE列之间进行转换

标签 java hibernate grails mapping grails-orm

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

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

最佳答案

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

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

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

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

关于java - 如何在GORM中GRAILS的类列和hibernate的DTYPE列之间进行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13890868/

相关文章:

java - ReplaceAll 正则表达式匹配所有模式,无需特定字符串

java - 如何在 IntelliJ 中分析堆转储? (内存泄漏)

hibernate - 当我有@ManyToMany 时如何设置外键名称

java - 如何停止自动创建方案?

java - 以日期为数据类型将字符串转换为 "yyy-MM-dd"格式

Java - 如何使用 BigDecimal pow 显示小数

java - AES/CBC/PKCS5填充问题

grails - 如何在循环中使用生成的 grails 3 服务在数据库中存储多个条目

grails - Grails 3:spring-security-ldap会更新吗?需要吗?

list - Groovy 方法从列表中获取随机元素