【问题标题】:Custom foreign key column name自定义外键列名
【发布时间】:2017-05-14 07:48:29
【问题描述】:

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

它同时创建: “EstadoId”整数 NOT NULL estadoid 整数 NOT NULL,

类 Cidade { 内部编号 字符串名称 布尔大写 静态映射 = { 表“tbCidades” id 列:'`CidadeId`' 名称列:'`名称`' 大写列:'`大写`' estado 列:'`EstadoId`' 版本错误 } 静态的 belongsTo = [ estado : Estado] } 类 Estado { 内部编号 弦乐 静态 hasMany = [ cidades: Cidade ] 静态映射 = { 表'`tbEstados`' id 列:'`EstadoId`' sigla 列:'`Sigla`​​' 版本错误 } }

我注意到我使用下划线格式选择了一个名称(例如:my_column_estado 可以。)

【问题讨论】:

    标签: grails grails-orm


    【解决方案1】:

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

    static belongsTo = [ estado : Estado]

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

    estado column: 'EstadoId'

    删除测试数据库并重新编译项目?

    【讨论】:

    • 实际上我需要该列的名称为“EstadoId”。但是由于 a 不需要任何级联,因此 a 只需像这样声明属性: Estado estado 并映射列名 :estado column: "EstadoId"。
    猜你喜欢
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 2011-10-12
    • 1970-01-01
    相关资源
    最近更新 更多