blz*_*blz 0 postgresql go go-gorm
我正在使用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
}
Run Code Online (Sandbox Code Playgroud)
当我通过一个UUID字符串getChip,返回正确的行和所有值都正确,除了对c.Pack_ID,这是永远0.顺便说一下,从来没有一行Pack_ID是0.
这是pgAdminIII的截图,我希望能够解释一下这个问题:

关于可能出错的任何想法?我完全失去了,这里......
您正在使用的结构标记似乎格式不正确.struct标签的格式应为:
name:"value"
Run Code Online (Sandbox Code Playgroud)
但是你得到的是缺少值周围的引号:
name:value
Run Code Online (Sandbox Code Playgroud)
尝试纠正这个.否则,Go中的struct标记解析器没有机会工作,因为它依赖于那些引号,如struct tag parser实现中所示.
关于特定的struct标签:你确定你应该使用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"`
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
231 次 |
| 最近记录: |