有什么方法可以摆脱 GORM 中的自动列重命名?

我打算将 GORM 与现有数据库一起使用,因此我正在为它创建一些模型。但是,我遇到了一个问题 - GORM 会自动将所有列重命名为小写蛇形。我真的不需要它,因为我使用的数据库并没有真正使用这样的名称。我发现,我可以使用标签


`gorm:"column_name:`

为了防止我的专栏被重命名。但是,这对我来说似乎并不是一个可行的解决方案,因为我有一堆模型,里面有很多列。有没有办法从 GORM 中关闭这个“重命名”策略,或者自动为我的所有模型添加标签?


我的模型看起来像这样:


type FOOD_DES struct {

NDB_NO string `gorm:"primary_key"`

FdGrp_Cd FD_GROUP

Long_Desc string

Shrt_Desc string

ComName string

ManufacName string

Survey string

Ref_desc string

Refuse float32

SciName string

N_Factor float32

Pro_Factor float32

Fat_Factor float32

CHO_Factor float32

}


米琪卡哇伊
浏览 188回答 1
1回答

慕盖茨4494581

来自文档:GORM 允许用户通过覆盖需要实现接口 Namer 的默认 NamingStrategy 来更改命名约定type Namer interface {  TableName(table string) string  ColumnName(table, column string) string  JoinTableName(table string) string  RelationshipFKName(Relationship) string  CheckerName(table, column string) string  IndexName(table, column string) string}所以只需实现接口Namer。在旧版本中,您可以这样做(参考)gorm.AddNamingStrategy(&gorm.NamingStrategy{    DB: func(name string) string {        return name    },    Table: func(name string) string {        return name    },    Column: func(name string) string {        return name    },})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go