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

标签 mysql hibernate grails-orm

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

我真的在寻找某种“备忘单”指南。例如,某些内容指出:

String                 --> this column data type 

tablePerHierarchy true --> these tables 

hasMany                --> this table/join table 

hasMany & belongsTo    --> ...

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

最佳答案

最重要的是,只需查看您的数据库,就可以更轻松地实时查看,为此使用DBMS(例如 HeidiSQLWorkbench 等)

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

1.) 简单数据类型:

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

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

a.) 有很多:

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

由于人群中有很多男性,这就是我们在 Man 域中存储引用键的原因。 (这意味着数据库中的 people 表将相当于没有 hasMany 关系的表)

b.) belongsTo , hasOne

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

| wife_id | hoddy_id | people_id |

Man 的表中将有 id (BIGINT):“people_id”,其中关键引用为 People表,hasOnebelongsTo 类似,存储对 Hobby 表的键引用。 (Wife 类似于 hasOne = [Wife])

如果People表中没有hasMany = [men : Man],则会有额外的表:'man_people'(或类似的东西)

| man_id | people_id |

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

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

  name type: 'text'

名称将为长文本

附注Mb,我错过了一些事情,但我希望这将是一个小的“备忘单”指南。

关于mysql - Grails/GORM : How do Domains and Associations map to a MySql Database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34683323/

相关文章:

php - (PHP+MySQL) 如何在特定条件下回显列名?

php - 防止 "corruption"

php - MySQL LEFT JOIN 问题与三个 WHERE 语句

java - hibernate/投影中的 Ucase 等价物?

grails gorm mongodb `like` 标准中的功能

php - 获取mysql数据PDO

mysql - 如何在 Hibernate + MySql 中使用自动生成的复合键 - MariaDB

java - Hibernate - 如何在一个查询中获取对象列表的属性

grails - removeFrom* 方法应该从数据库中删除子项还是应该只删除父子关系?

java - Gorm MongoDB 插件存储 jvm 对象 id 而不是字节数组数据