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
	}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM