知识分享之Golang——gorm的结构体常用标签
背景
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。
知识分享系列目前包含Java、Golang、Linux、Docker等等。
开发环境
- 系统:windows10
- 语言:Golang
- 组件库:Bleve
- golang版本:1.18
- 组件官网:https://gorm.io/
- 组件仓库: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"
}
参见内容:
https://gorm.io/docs/models.html#embedded_struct
https://blog.csdn.net/qq_35709559/article/details/109711919