Могу ли я использовать схему гориллы с sql.NullString?

Я использую схему гориллы для заполнения структуры на основе отправки формы пользователем. Моя структура содержит sql.NullString, и в настоящее время я получаю следующую ошибку:

schema: converter not found for sql.NullString

Как я могу использовать sql.NullString в структуре, которую я хочу заполнить схемой гориллы?


person carbocation    schedule 02.01.2015    source источник


Ответы (1)


Я создал список ( https://gist.github.com/carbocation/51b55297702c7d30d3ef), который показывает один из способов приблизиться к этому. Вам нужно создать schema.Converter для каждого из четырех типов: sql.NullString, sql.NullBool, sql.NullInt64 и sql.NullFloat64.

Пример для sql.NullString:

import "database/sql"
import "reflect"

func ConvertSQLNullString(value string) reflect.Value {
    v := sql.NullString{}
    if err := v.Scan(value); err != nil {
        return reflect.Value{}
    }

    return reflect.ValueOf(v)
}

Затем зарегистрируйте это в своем *schema.Decoder (обычно это глобальный пакет, в данном случае с именем d):

import "database/sql"

nullString := sql.NullString{}
d.RegisterConverter(nullString, ConvertSQLNullString)
person carbocation    schedule 02.01.2015