当前位置: 首页 > news >正文

gorm 中的事务运用

使用背景

在编写业务代码的过程中,如果涉及到多张表的更新操作,为了确保数据的一致性,我们会在业务代码的过程中加上事务的控制,那么针对go 语言中,如果我们使用gorm框架改如何操作呢?

gorm中使用事务的几种方式

  • 方式一(业务层事务)
func NewTransaction() *gorm.DB {return suit.GetGormClient().Begin()
}tx := s.AlarmDao.NewTransaction()
defer tx.Rollback()...(具体业务处理)err = tx.Commit().Error
  • 方式二(dao层事务)
func (r *Repo) TxUpdateBonus(ctx context.Context, bonus *entity.Bonus, transaction *entity.Transaction) error {return r.Connection().Transaction(func(tx *gorm.DB) error {if bonus.ID < 1 {if err := tx.WithContext(ctx)
http://www.lryc.cn/news/196251.html

相关文章:

  • maven 新建模块 导入后 按Ctrl 点不进新建模块pom定义
  • idea使用debug无法启动,使用run可以启动
  • 进程的虚拟地址空间
  • 做web自动化测试遇到Chrome浏览器老是自动更新,怎么办 ? 这里提供两个解决办法 。
  • 腾讯HR面试
  • 过滤器(Filter)和拦截器(Interceptor)有什么不同?
  • Spring 注解 @Qualifier 详解
  • 实现更低功耗R5F51406BDNE、R5F51406ADFK、R5F51406ADFL、R5F51406AGFN搭载RXv2内核的32位微控制器
  • 通信系统中ZF,ML,MRC以及MMSE四种信号检测算法误码率matlab对比仿真
  • Redis数据结构之listpack
  • VMware 配置记录
  • 【Java基础面试十四】、 封装的目的是什么,为什么要有封装?
  • 阿里云2023年双十一优惠活动整理
  • HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
  • lenovo联想笔记本ThinkPad系列T15p或P15v Gen3(21DA,21DB,21D8,21D9)原厂Win11系统镜像
  • 【SpringBoot】拦截器(Interceptor)的使用
  • CS鱼饵制作
  • 问题记录1 json解析问题
  • std::move以及右值引用等
  • 分享一个比对图片是否一致的小工具(来源: github)
  • 编写AA程序需要做以下几个步骤:
  • jmeter接口测试使用rsa加密解密算法
  • IDEA通过Docker插件部署SpringBoot项目
  • 微查系统,一站式查询,让您的查询更加便捷
  • C++stack和queue模拟实现以及deque的介绍
  • WPF ListView 鼠标点击,移动改变背景色不启作用
  • Maven Dependency 机制
  • CustomShapes/自定义形状, CustomCurves/自定义曲线, AnimateableData/数据变化动画 的使用
  • 软件测试用例设计方法-因果图法
  • 水库大坝安全监测是什么和主要作用?