sqlx映射到struct,如何解决"missing destination name"?
sqlx mapping to struct, how to solve "missing destination name"?
我正在尝试映射一个 table,它看起来像这样:
Column
Type
Collation
Nullable
Default
time
timestamp without time zone
NL
double precision
像这样的结构:
type Price struct {
time time.Time `db:"time"`
NL float64 `db:"NL"`
}
使用此代码:
data := []Price{}
err = db.Select(&data, "" +
"SELECT \"time\",\"NL\" FROM <TABLENAME> where \"time\" > '2020-01-01' order by \"time\" desc")
if err != nil {
fmt.Println(err)
}
但我一直收到错误
missing destination name time in *[]main.Price
经过一些搜索后,我按照发现的顺序应用了修复程序(最终结果是上面的代码):
- 将
db:name
添加到结构
- 以上更改包括双引号
- 检查了它们匹配的列名的大小写
这些是 SO 和互联网上其他地方的所有常见解决方案。我不明白为什么这不起作用,有人可以帮助我吗?谢谢!
Go 中的反射工具仅公开具有大写(导出)名称的结构字段。
尝试将 time time.Time
更改为 Time time.Time
。
我正在尝试映射一个 table,它看起来像这样:
Column | Type | Collation | Nullable | Default |
---|---|---|---|---|
time | timestamp without time zone | |||
NL | double precision |
像这样的结构:
type Price struct {
time time.Time `db:"time"`
NL float64 `db:"NL"`
}
使用此代码:
data := []Price{}
err = db.Select(&data, "" +
"SELECT \"time\",\"NL\" FROM <TABLENAME> where \"time\" > '2020-01-01' order by \"time\" desc")
if err != nil {
fmt.Println(err)
}
但我一直收到错误
missing destination name time in *[]main.Price
经过一些搜索后,我按照发现的顺序应用了修复程序(最终结果是上面的代码):
- 将
db:name
添加到结构 - 以上更改包括双引号
- 检查了它们匹配的列名的大小写
这些是 SO 和互联网上其他地方的所有常见解决方案。我不明白为什么这不起作用,有人可以帮助我吗?谢谢!
Go 中的反射工具仅公开具有大写(导出)名称的结构字段。
尝试将 time time.Time
更改为 Time time.Time
。