Grails/GORM:域和关联如何映射到 MySql 数据库

Grails/GORM: How do Domains and Associations map to a MySql Database

我正在通过 Grails 3 使用 GORM,我想知道域及其关联在输出到 MySql 数据库时的样子。

我真的在寻找某种 "cheat sheet" 指南。例如,声明:

String                 --> this column data type 

tablePerHierarchy true --> these tables 

hasMany                --> this table/join table 

hasMany & belongsTo    --> ...

我认为这会是一个快速的 Google 工作,但到目前为止我还没有发现任何东西。我也知道这是基于 Hibernate 的,所以我也尝试在那里搜索。我可能只是渲染这些表格并自己在这里记下来,但在我这样做之前,社区中是否有人知道这样的资源是否已经存在?

最重要的是,只需查看您的数据库,实时查看会更容易,为此使用 DBMS(例如 HeidiSQL, Workbench e.t.c .)

这是默认数据类型的一些示例 ->

1.) 简单数据类型:

String     -> VARCHAR(255)
Integer    -> BIGINT
BigDecimal -> DOUBLE
Boolean    -> BIT
Date       -> DATETIME

2.) 域关系存储 *(要在数据库 gorm 中存储域之间的关系,添加 id (BIGINT) 和 外键)

a.) 有很多:

  class People { 
      ...
     hasMany = [men : Man]
  }

因为人中有很多男人,所以我们将 参考密钥 存储在男人域中。 (这意味着数据库中的人 table 将等同于没有 hasMany 关系 的 table)

b.) belongsTo , hasOne

 class Man {                      
    ...                          
    Wife wife                    
    hasOne = [Hobby]             
    belongsTo = [People]         
 }

| wife_id | hoddy_id | people_id |

Man的table中会有id(BIGINT): "people_id" 关键参考 People table, hasOne 是类似于 belongsTo 并将密钥引用存储到 Hobby table。 (Wife 将类似于 hasOne = [Wife])

如果Peopletable中没有hasMany = [men : Man],则会有额外的table:'man_people'(或像那样)

| man_id | people_id |

有关 table 关系的更多信息,您可以找到 >> Here <<

顺便说一句,您可以更改映射中的默认数据类型,例如:

  name type: 'text'

名称将是 LongText

P.S。 Mb 我错过了 smth,但我希望这对你来说是一个小的 "cheat sheet" 指南。