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 @   潜行1  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示