1. 程式人生 > 其它 >GORM中Hook(物件生命週期)應用:使用UUID作為資料庫主鍵

GORM中Hook(物件生命週期)應用:使用UUID作為資料庫主鍵

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
	}