gorm 使用报错
app.POST(BusiAPI+"/SagaBTransOutGorm", dtmutil.WrapHandler(func(c *gin.Context) interface{} {
req := reqFrom(c)
barrier := MustBarrierFromGin(c)
tx := dbGet().DB.Begin()
return barrier.Call(tx.Statement.ConnPool.(*sql.Tx), func(tx1 *sql.Tx) error {
return tx.Exec("update dtm_busi.user_account set balance = balance + ? where user_id = ?", -req.Amount, TransOutUID).Error
})
}))
报错信息: panic: interface conversion: gorm.ConnPool is *gorm.PreparedStmtTX, not *sql.Tx [recovered] panic: interface conversion: gorm.ConnPool is *gorm.PreparedStmtTX, not *sql.Tx
搞定了 将 tx.Statement.ConnPool.(*sql.Tx) 修改为tx.Statement.ConnPool.(*gorm.PreparedStmtTX).Tx.(*sql.Tx) 即可
帮忙把这个修改提个pr过来呗,感谢哈