SQLX "missing destination name" 在结构标记中使用 table 名称时
SQLX "missing destination name" when using table name in the struct tag
问题是当我对对象使用结构标签时,它们无法正常工作。我以前做过项目,做过同样的事情,但没有问题,但我不明白为什么。
示例:
这不起作用:
type Category struct {
ID int `json:"id" db:"category.id"`
Name string `json:"name" db:"category.name"`
Description string `json:"description" db:"category.description"`
}
收到错误:
missing destination name id in *[]Category
这很好用:
type Category struct {
ID int `json:"id" db:"id"`
Name string `json:"name" db:"name"`
Description string `json:"description" db:"description"`
}
查询:
result := []Category{}
query := `
SELECT category.id, category.name, category.description FROM category;
`
err := sqlx.Select(db, &result, query)
运行 SQL 编辑器中的查询工作正常。我还参与了一个专有项目,在该项目中将 table 名称添加到标签前工作正常,但无论出于何种原因,我似乎无法使用它。
感谢帮助,
编辑:
使用mysql
其实是连接步骤出错了!
我需要将 columnsWithAlias=true
添加到连接参数,代码运行良好。
感谢 RayfenWindspear 提供 mysql 默认情况下不发送列名称的提示。
问题是当我对对象使用结构标签时,它们无法正常工作。我以前做过项目,做过同样的事情,但没有问题,但我不明白为什么。
示例:
这不起作用:
type Category struct {
ID int `json:"id" db:"category.id"`
Name string `json:"name" db:"category.name"`
Description string `json:"description" db:"category.description"`
}
收到错误:
missing destination name id in *[]Category
这很好用:
type Category struct {
ID int `json:"id" db:"id"`
Name string `json:"name" db:"name"`
Description string `json:"description" db:"description"`
}
查询:
result := []Category{}
query := `
SELECT category.id, category.name, category.description FROM category;
`
err := sqlx.Select(db, &result, query)
运行 SQL 编辑器中的查询工作正常。我还参与了一个专有项目,在该项目中将 table 名称添加到标签前工作正常,但无论出于何种原因,我似乎无法使用它。
感谢帮助,
编辑:
使用mysql
其实是连接步骤出错了!
我需要将 columnsWithAlias=true
添加到连接参数,代码运行良好。
感谢 RayfenWindspear 提供 mysql 默认情况下不发送列名称的提示。