golang: Как изменить нейминг стратегию sqlx?

Рейтинг: 0Ответов: 1Опубликовано: 26.06.2023

Есть такое подключение

    db, err := sqlx.Connect(
        "postgres",
        fmt.Sprintf(
            "postgresql://%s:%s@%s:%s/%s?sslmode=disable",
            databaseUser,
            databasePassword,
            databaseHost,
            databasePort,
            databaseDB,
        ),
    )

и такой метод

    type A struct {
        task string
        taskDone string 
    }
    a := A{}
    result, err := db.NamedExec(
        `INSERT INTO mcc (task, task_done) VALUES (:task, :taskdone)`,
        a,
    )

код работает. Но если я меняю :taskdone на :task_done, то выдает ошибку could not find name task_done

    db, err := sqlx.Connect(
        "postgres",
        fmt.Sprintf(
            "postgresql://%s:%s@%s:%s/%s?sslmode=disable",
            databaseUser,
            databasePassword,
            databaseHost,
            databasePort,
            databaseDB,
        ),
    )

и такой метод

    type A struct {
        task string
        taskDone string 
    }
    a := A{}
    result, err := db.NamedExec(
        `INSERT INTO mcc (task, task_done) VALUES (:task, :task_done)`,
        a,
    )

С select аналогичная проблема.

Как сделать так, что бы работал вариант с :task_done?

Ответы

▲ 0Принят

Спасибо! в Структуре нужно было добавить TaskDone uint db:"task_done"