我正在使用 go-gorm 从 PostgreSQL 数据库中获取值。相关代码如下所示:type Chip struct { UUID string `db:uuid` URL string `db:url` N int `db:n` Pack_ID int `db:pack_id`}func getChip(uuid string) (Chip, error) { var c Chip err := DB.Model(Chip{}).Where("uuid = ?", uuid).First(&c) return c, err.Error}当我通过UUID字符串getChip,返回正确的行和所有值都正确,除了对c.Pack_ID,这是永远0。顺便说一句,从来没有一行Pack_ID是 is 0。这是 pgAdminIII 的屏幕截图,我希望它可以对问题有所了解:关于可能出什么问题的任何想法?我完全不知所措,在这里......
1 回答
jeck猫
TA贡献1909条经验 获得超7个赞
您使用的结构标记似乎格式不正确。结构标记应采用以下形式:
name:"value"
但你所得到的是缺少围绕价值的引号:
name:value
尝试纠正这一点。否则,Go 中的 struct tag parser 就没有机会工作,因为它依赖于这些引号,如 struct tag parser implementation 中所见。
关于特定的结构标签:你确定你应该使用db?根据Gorm 文档,您可能想要使用gorm:"column:...". 我期待你的类型定义是:
type Chip struct {
UUID string `gorm:"column:uuid;primary_key"`
URL string `gorm:"column:url"`
N int `gorm:"column:n"`
Pack_ID int `gorm:"column:pack_id"`
}
- 1 回答
- 0 关注
- 136 浏览
添加回答
举报
0/150
提交
取消