自定义外键列名称

时间:2016-12-30 00:12:58

标签: grails gorm

我试图连接一个滞后数据库,但我遇到了一些麻烦。我使用的是Grails 3.2.3和Postgresql 9.4。尝试更改列名时,GORM会创建两次列,一次使用我选择的名称,另一次使用GORM列名称格式。 Cidade 实体中的列 estado ,我需要将其映射到" EstadoId"

它创造了两个: " EstadoId"整数NOT NULL  estadoid整数NOT NULL,

class Cidade {
  int id
  String nome
  Boolean capital

  static mapping = {
    table '`tbCidades`'
    id column: '`CidadeId`'
    nome column: '`Nome`'
    capital column: '`Capital`'
    estado column:  '`EstadoId`'
    version false
  }

  static belongsTo = [ estado : Estado]
}

class Estado {
  int id
  String sigla

  static hasMany = [ cidades: Cidade ]

  static mapping = {
    table '`tbEstados`'
    id column: '`EstadoId`'
    sigla column: '`Sigla`'
    version false
  }
}

我注意到我选择了使用下划线格式的名称(例如: my_column_estado 它有效。)

1 个答案:

答案 0 :(得分:0)

这是grails的默认行为;当你使用

static belongsTo = [ estado : Estado]

它正在创建映射到estado_id实例的estado列。您是否尝试删除约束:

estado column: ' {EstadoId {1}}

drop test db并重新编译项目?