douwei7203 2015-02-17 23:24
浏览 338
已采纳

使用下划线从golang结构访问mysql字段

I'm working with the https://github.com/jinzhu/gorm library. For some reason I can't access some fields that I expect to be there. Those particular fields have underscores in them. For instance when I try to Access SpeName it doesn't fail but it also does not give me a string

type Specialties struct {
    SpeId      int64  
    SpeName    string 
    Conditions sql.NullString
    ParentId   sql.NullInt64 
    Hidden     sql.NullInt64
}


func IsFolderNameASpecialty(folderName string) models.Specialties {
    var sSpecialty models.Specialties
    for _, specialty := range Specialties {
        fmt.Println(strings.ToLower(folderName), specialty.SpeName)
        if strings.ToLower(folderName) == strings.ToLower(specialty.SpeName) {
            sSpecialty = specialty
        }
    }
    return sSpecialty
}

For Some reason the println is empty. The mysql field is really spe_Name instead of SpeName. What tag do I use to allow me to access the field properly?

  • 写回答

1条回答 默认 最新

  • dongzan2740 2015-02-17 23:41
    关注

    According to https://github.com/jinzhu/gorm#existing-schema, you want to use column: in the struct type tag.

    type Specialties struct {
        // ...
        SpeName    string `gorm:"column:spe_Name"`
        // ...
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置