菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
0
0

GORM 中文文档_ 1.2. 模型定义

原创
05/13 14:22
阅读数 498

模型定义

模型一般都是普通的 Golang 的结构体,Go的基本数据类型,或者指针。sql.Scannerdriver.Valuer,同时也支持接口。

例子:

type User struct {
  gorm.Model
  Name         string
  Age          sql.NullInt64
  Birthday     *time.Time
  Email        string  `gorm:"type:varchar(100);unique_index"`
  Role         string  `gorm:"size:255"` //设置字段的大小为255个字节
  MemberNumber *string `gorm:"unique;not null"` // 设置 memberNumber 字段唯一且不为空
  Num          int     `gorm:"AUTO_INCREMENT"` // 设置 Num字段自增
  Address      string  `gorm:"index:addr"` // 给Address 创建一个名字是  `addr`的索引
  IgnoreMe     int     `gorm:"-"` //忽略这个字段
}

结构标签

标签是声明模型时可选的标记。GORM 支持以下标记:

支持的结构标签

Column 指定列的名称
Type 指定列的类型
Size 指定列的大小,默认是 255
PRIMARY_KEY 指定一个列作为主键
UNIQUE 指定一个唯一的列
DEFAULT 指定一个列的默认值
PRECISION 指定列的数据的精度
NOT NULL 指定列的数据不为空
AUTO_INCREMENT 指定一个列的数据是否自增
INDEX 创建带或不带名称的索引,同名创建复合索引
UNIQUE_INDEX 类似 索引,创建一个唯一的索引
EMBEDDED 将 struct 设置为 embedded
EMBEDDED_PREFIX 设置嵌入式结构的前缀名称
- 忽略这些字段

关联的结构标签

有关详细信息,请查看「关联」部分

MANY2MANY 指定连接表名称
FOREIGNKEY 指定外键
ASSOCIATION_FOREIGNKEY 指定关联外键
POLYMORPHIC 指定多态类型
POLYMORPHIC_VALUE 指定多态的值
JOINTABLE_FOREIGNKEY 指定连接表的外键
ASSOCIATION_JOINTABLE_FOREIGNKEY 指定连接表的关联外键
SAVE_ASSOCIATIONS 是否自动保存关联
ASSOCIATION_AUTOUPDATE 是否自动更新关联
ASSOCIATION_AUTOCREATE 是否自动创建关联
ASSOCIATION_SAVE_REFERENCE 是否引用自动保存的关联
PRELOAD 是否自动预加载关联

发表评论

0/200
0 点赞
0 评论
收藏
为你推荐 换一批