Golang вызывает методы на указателе интерфейса

я используюGorp для доступа к базе данных у Gorp есть стандартDbMap тип, а такжеTransaction введите, когда вы хотите иметь возможность откат. Оба типа реализуютSqlExecutor интерфейс.

Поэтому я программирую противSqlExecutor интерфейс, так что я могу использовать транзакции, если я хочу без необходимости изменять мой код.

Затем я инициализирую горпаDbMap или жеTransaction и передать его как свойство поля. Проблема в том, что мне нужен указатель на горпобъект»иначе как я смогу откатиться если я используюTransaction если горпобъект» передается по значению вместо ссылки.

Затем я получаю сообщение, такое как

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
}

Ответы на вопрос(2)

Ваш ответ на вопрос