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"`
        // ...
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?