gorm笔记

抽取一下gorm的常用代码片段

钩子

俗称的生命周期方法

gorm默认运行在事务上, 任何一个钩子返回了错误, 那么调用钩子的操作也会被回滚;

以创建为例

func (u *User) BeforeCreate(tx *gorm.DB) (err error) {  
  u.UUID = uuid.New()  
  
  if !u.IsValid() {  
    err = errors.New("can't save invalid data")  
  }  
  return  
}  
  
func (u *User) AfterCreate(tx *gorm.DB) (err error) {  
  if u.ID == 1 {  
    tx.Model(u).Update("role", "admin")  
  }  
  return  
}

如果不使用gorm自带的外键的级联更新, 则可以用这种方式;

posted @ 2024-02-26 13:22  潜行1  阅读(30)  评论(0)    收藏  举报