知识分享之Golang——gorm的结构体常用标签

背景

知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。

知识分享系列目前包含Java、Golang、Linux、Docker等等。

开发环境

  • 系统:windows10
  • 语言:Golang
  • 组件库:Bleve
  • golang版本:1.18
  • 组件仓库:gorm
  • 开源协议:MIT License

内容

近期一直在使用gorm进行数据的增删改查操作,其每个表或每个数据结果都会对应一个结构体,但是有时在使用这个结构体时会额外增加一部分字段作为一些其他业务逻辑的使用,这时如何来有效避免一些字段不被gorm进行处理呢,我去查阅了官方文档和其网上的资料,整理本节内容,以下是其结构体中常用的使用方式,便于小伙伴们使用:

标签名作用案例
column指定字段名,如果不指定通常是字段的小写驼峰格式gorm:"column:usr_id;"
primaryKey是否是主键gorm:"column:usr_id;primaryKey"
unique是否唯一gorm:"column:usr_id;unique"
default指定默认值gorm:"column:usr_id;default:123"
-忽略该字段gorm:"-"
->只读gorm:"->;column:usr_id"
<-允许读和写gorm:"<-;column:usr_id"
<-:update允许读和更新gorm:"<-:update;column:usr_id"
<-:create允许读和创建gorm:"<-:create;column:usr_id"
->:false;<-:create仅创建gorm:"->:false;<-:create;column:usr_id"
// 覆盖User结构体使用的表名
func (User) TableName() string {
  return "profiles"
}

参见内容:

本文声明:
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。