GORM中Hook(物件生命週期)應用:使用UUID作為資料庫主鍵
阿新 • • 發佈:2021-11-18
GORM中Hook(物件生命週期)應用:使用UUID作為資料庫主鍵
定義資料庫模型結構體
type Article struct {
ID uuid.UUID `json:"id" gorm:"type:char(36);primary_key"`
}
在建立資料庫結構體例項是呼叫鉤子:BeforeCreate
//鉤子:在文章被建立之前,通過UUID生成文章的ID
func (u *Article) BeforeCreate(tx *gorm.DB) (err error) {
u.ID = uuid.NewV4()
return
}
呼叫:
// 建立article //var createuuid=uuid.NewV4() article := model.Article{ //ID: createuuid, UserId: user.(model.User).ID, //使用者的ID CategoryId: requestArticle.CategoryId, //傳入的文章分類ID Title: requestArticle.Title,//傳入的文章標題 HeadImg: requestArticle.HeadImg,//傳入文章的圖片 Content: requestArticle.Content,//傳入文章的內容 } // 插入資料 if err := common.DB.Create(&article).Error; err != nil { c.JSON(400, gin.H{ "data": gin.H{ "err":err, }, "meta": gin.H{ "msg": "資料寫入資料庫失敗", "code": 400, }}) return }