我正在开发一个使用 gorm 来处理数据库访问的应用程序。
我正在考虑为此使用现有的包,并且该包需要一个
sql.Tx
结构值。
开始gorm交易后,我可以从
sql.DB
中取出gorm.DB
,但没有找到提取sql.Tx
的方法。
如何从 Gorm 事务数据库结构中获取
sql.Tx
?
给定一个名为
*gorm.DB
的 db
实例,您可以尝试将 db.Statement.ConnPool
转换为 sql.Tx
,如下所示:
var db *gorm.DB // Passed in or created elsewhere
if tx, ok := db.Statement.ConnPool.(*sql.Tx); ok {
// `tx` is an instance of `*sql.Tx`.
}