找不到使用 Go/SQLX 存在的结构 属性

Cannot find Struct property that exists using Go/SQLX

我正在从文件上传中收集元数据,并将其插入数据库 table。结构是这样的:

// file Metadata struct
type MetaData struct {
    Owner       string
    FileRows    int64
    FileSize    string
    FileName    string
    FileUuid    string
    LastUpdated string
}

下面是我如何填充对结构的引用:

metaDataRow := MetaData{
    Owner:       "Fake Name",
    FileRows:    (int64)(count - 1),
    FileSize:    fileSize,
    FileName:    fileName,
    FileUuid:    handle,
    LastUpdated: time.Now().Format(time.RFC822Z),
}

我的问题是,当我尝试将此结构引用插入我的数据库时,我收到一条错误消息:

could not find name Owner in &processor.MetaData{Owner:"Fake Name", FileRows:1499, FileSize:"308.9 kB", FileName:"small-file.csv", FileUuid:"1234567890qwerty", LastUpdated:"30 Jan 20 21:13 +0000"}

现在,我们可以清楚地看到,Owner 存在于结构中并且它有一个值,其他结构也是如此。我不确定查询分配是否在第一次查找时失败并且 panic'd 在那里,但我无法通过这个来查看其他人是否也失败了。这是我的 sqlx NamedExec 因为我的 Struct 引用或绑定可能有问题?

// execute transaction
_, err = tx.NamedExec(`
    INSERT INTO file_metadata (
        owner,
        file_rows,
        file_size,
        file_name,
        file_uuid,
        last_updated
    ) VALUES (
        :Owner,
        :FileRows,
        :FileSize,
        :FileName,
        :FileUuid,
        :LastUpdated
    )
`, &metaDataRow)

我希望这是一个简单的修复,边界错字。

您可以将 db tag 添加到您的结构中:

 Owner string `db:"owner"`

然后插入:

...VALUES (:owner, ....