Grails 自定义外键列名

Grails 自定义外键列名,grails,gorm,Grails,Gorm,我正在尝试连接lagacy数据库,但遇到了一些问题。我正在使用Grails 3.2.3和Postgresql 9.4。当尝试更改列名时,GORM将创建两次列,一次使用我选择的名称,另一次使用GORM列名格式。 列是Cidade实体中的estado,我需要将其映射到“EstadoId” 它创建了两个: “EstadoId”整数不为空 estadoid整数不为空 class Cidade { int id String nome Boolean capital static map

我正在尝试连接lagacy数据库,但遇到了一些问题。我正在使用Grails 3.2.3和Postgresql 9.4。当尝试更改列名时,GORM将创建两次列,一次使用我选择的名称,另一次使用GORM列名格式。 列是Cidade实体中的estado,我需要将其映射到“EstadoId”

它创建了两个: “EstadoId”整数不为空 estadoid整数不为空

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] } 类Cidade{ 整数id 字符串名称 布尔资本 静态映射={ 表'`tbCidades`' id列:'`CidadeId`' nome列:“`nome`” 大写栏:“`capital`” estado列:''EstadoId`' 版本错误 } 静态belongsTo=[estado:estado] } 类Estado{ 整数id 弦西格拉 静态hasMany=[cidades:Cidade] 静态映射={ 表'`tbEstados`' id列:'`EstadoId`' sigla列:''sigla`' 版本错误 } }
我注意到我使用下划线格式选择了一个名称(比如:my_column\u estado它可以工作)。

它是grails的默认名称;当你使用

static belongsTo=[estado:estado]

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

estado列:'
EstadoId
'


drop test db and recompile project?

实际上我需要该列的名称为“EstadoId”。但是由于a不需要任何级联,a只是这样声明了atribute:Estado Estado并映射了列名:Estado column:“EstadoId”。 class Estado { int id String sigla static hasMany = [ cidades: Cidade ] static mapping = { table '`tbEstados`' id column: '`EstadoId`' sigla column: '`Sigla`' version false } }