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自带的外键的级联更新, 则可以用这种方式;

浙公网安备 33010602011771号