我正在使用Gorp进行数据库访问,Gorp 有一个标准DbMap类型,以及一个Transaction用于何时能够回滚的类型。这两种类型都实现了SqlExecutor接口。
因此SqlExecutor,我针对接口进行编程,因此我可以根据需要使用事务而无需更改我的代码。
然后我初始化一个 Gorp DbMaporTransaction并将其作为字段属性传入。问题是我需要一个指向 Gorp“对象”的指针,否则如果我使用 aTransaction如果 Gorp“对象”通过值而不是引用传递,我将如何能够回滚。
然后我收到一条消息,例如
r.Gorp.Get undefined (type *gorp.SqlExecutor has no field or method Get)
当我尝试使用我的代码时。我如何调用这些方法?
代码示例如下。
package repositories
import (
"github.com/coopernurse/gorp"
)
type Repository struct {
Gorp *gorp.SqlExecutor // <<<< Need pointer so I can rollback
}
func (r *Repository) GetById(i interface{}, key interface{}) interface{} {
obj, err := r.Gorp.Get(i, key)
if err != nil {
panic(err)
}
return obj
}
Qyouu
牛魔王的故事
相关分类