代码之家  ›  专栏  ›  技术社区  ›  Bagbyte

Grails映射域类自定义列名

  •  1
  • Bagbyte  · 技术社区  · 8 年前

    在我的Grails项目中,我连接到一个现有的数据库,我有以下结构

    class Country {
      Integer country
      String countryCode
      String label
    }
    
    class Address {
      String countryCode
      ....
    }
    

    数据库表:

    国家统计表

    id,版本,国家,国家代码,标签

    地址表

    id,版本,国家代码。。。

    我想要一些类似的东西:

    class Address {
      Country country
    }
    

    但它似乎在自动寻找一个名为 country_id 在地址表中,我尝试使用

    static mapping = {
        country column: 'country'
    }
    

    但我仍然有同样的结果。

    我知道最好将它链接到 country.id 但数据库已存在,我无法修改它。

    有人能帮忙吗?

    2 回复  |  直到 8 年前
        1
  •  1
  •   monty_bean    8 年前

    如果使用一对多关系,则不需要声明属性。 在 class Country 您可以添加

    static hasMany = [addresses: Address]
    

    并添加

    static belongsTo = [country: Country]
    

    你不需要添加 Country country 领域

    然后您可以使用 addressInstance.country.countryCode 以显示数据。

        2
  •  0
  •   Michal_Szulc    8 年前

    退房 this 并添加到域类 Country :

    static mapping = {
         id name: 'country'
    }