beego tag詳解
文章目錄
在使用ORM操作建立表時,經常需要用一些tag標籤,在這裡做一整理
1. auto
當 Field 型別為 int, int32, int64, uint, uint32, uint64 時,可以設定欄位為自增健
AnyField int `orm:"auto"`
2. pk
設定為主鍵,適用於自定義其他型別為主鍵
AnyField int `orm:"pk"`
3. - 忽略欄位
設定 - 即可忽略 struct 中的欄位
4. null
資料庫表預設為 NOT NULL,設定 null 代表不允許為空
5. index
為單個欄位增加索引
6. unique
為單個欄位增加 unique 鍵,讓該屬性的內容不同重複
7. column
為欄位設定 db 欄位的名稱,就是設定列名
Name string `orm:"column(user_name)"`
8. size
設定欄位大小,如需設定vchar型別最大長度為60,則用size(60),
9. digits / decimals
設定 float32, float64 型別的浮點精度
Money float64 `orm:"digits(12);decimals(4)"`
10. auto_now / auto_now_add
auto_now 每次 model 儲存時都會對時間自動更新
auto_now_add 第一次儲存時才設定時間
Created time.Time `orm:"auto_now_add;type(datetime)"`
Updated time.Time `orm:"auto_now;type(datetime)"`
注意: 對於批量的 update 此設定是不生效的
11. type
設定為 date 時,time.Time 欄位的對應 db 型別使用 date
Created time.Time `orm:"auto_now_add;type(date)"`
設定為 datetime 時,time.Time 欄位的對應 db 型別使用 datetime
Created time.Time `orm:"auto_now_add;type(datetime)"`
12. default
為欄位設定預設值,型別必須符合(目前僅用於級聯刪除時的預設值)
13. 使用例項
type Server struct {
// ID 不會匯出到JSON中
ID int `json:"-"`
// ServerName 的值會進行二次JSON編碼
ServerName string `json:"serverName"`
//含有都是json多個json輸出用到的tag的時候
ServerName2 string `json:"serverName2,string"`
// 如果 ServerIP 為空,則不輸出到JSON串中
ServerIP string `json:"serverIP,omitempty"`
}
type studentinfo struct {
//設定主鍵且為自動增長(可以不設定,預設就是這樣)
Id int `pk:"auto"`
//設定欄位的長度
Stuname string `orm:"size(20)"`
Stuidentify string `orm:"size(30)"`
Stubirth time.Time
Stuclass string `orm:"size(30)"`
Stumajor string `orm:"size(30)"`
}
type Userinfos struct {
//設定主鍵自動增長的
Id int `pk:"auto"`
//設定欄位的大小
Name string `orm:"size(30)"`
// OneToOne 關係 同時含有json輸出格式
Profile *Profile `orm:"rel(one)" json:"profile,omitempty`
//Post []*Post `orm:"reverse(many)"` // 設定一對多的反向關係
}
type Profile struct {
Id int
Age int
Email string
Gender string
// 設定一對一反向關係(可選)
User *Userinfos `orm:"reverse(one)"`
}
type Post struct {
Id int
Title string
//設定多對多關係
Tags []*Tag `orm:"rel(m2m)"`
}
type Tag struct {
Id int
Name string
//設定反向多對多關係
Posts []*Post `orm:"reverse(many)"`
}
相關文章
- Git tag標籤用法詳解Git
- Flutter GetX Tag 屬性使用詳解Flutter
- beego註解路由中各個引數解釋Go路由
- BSP tag in CRM and JSP tag in HybrisJS
- DedeCMS Error: Tag disabled: "php" 解決方法ErrorPHP
- Tag
- Beego 再出發Go
- beego orm使用GoORM
- 帝國CMS在IIS環境開啟TAG偽靜態後,中文TAG提示“TAG不存在”的最後解決方法!
- git tagGit
- Git - TagGit
- prettier Unexpected closing tag "p". It may happen when the tag has already been closed by another tag.APP
- windows 安裝beegoWindowsGo
- docker建立beego映象DockerGo
- Beego Models之二Go
- 易優tag TAG呼叫標籤-EyouCms手冊
- docker tag命令Docker
- docker image REPOSITORY 為 TAG 為none的解決方法DockerNone
- 求救Beego大神們,Beego orm 怎麼限制Relation裡返回的Variable?GoORM
- beego建立專案流程Go
- beego框架程式碼分析Go框架
- beego 架構(API 版)Go架構API
- Beego 框架巔峰之路Go框架
- Git tag 標籤Git
- docker tag save loadDocker
- [Javascript] template literal tagJavaScript
- SAP Hybris Commerce的JSP tag和SAP BSP tag的比較JS
- [beego新手入門]基於web框架-beego的RESTful API的構建之旅GoWeb框架RESTAPI
- 配置supervisor管理beego應用Go
- 請教Beego Router 問題Go
- TAG:採用TAG標準的廣告欺詐率下降94%
- github clone 指定的tagGithub
- Git-tag標籤Git
- Go語言之 Struct TagGoStruct
- beego自動建表失敗Go
- Beego(簡介、配置、路由、日誌)Go路由
- beego的安裝和升級Go
- bo 框架之 beego 框架 model curd框架Go