在 GORM 中禁用 CreatedAt UpdatedAt DeletedAt 字段

我使用 GORM 并且正在映射遗留表。


默认情况下 GORM 有这个结构:


type Model struct {

        ID        uint      `gorm:"primarykey"`

        CreatedAt time.Time

        UpdatedAt time.Time

        DeletedAt DeletedAt `gorm:"index"`

}

我在旧表中没有 CreatedAt UpdatedAt DeletedAt 字段,我需要避免或禁用此默认结构。


我找不到避免这些专栏的方法。


慕哥6287543
浏览 759回答 3
3回答

一只名叫tom的猫

而不是将模型创建为嵌入式结构:type MyModel struct {  gorm.Model  StringField  string  IntField uint}您可以使用您在中提到的声明来创建它gorm.Model:type MyModel struct {  ID           uint `gorm:"primarykey"`  StringField  string  IntField     uint}

慕虎7371278

您可以避免 fields CreatedAt,UpdatedAt并且不在结构内部DeletedAt指定。gorm.Modelgorm:"column_name"您必须通过在它们旁边添加来显式声明这些结构字段在 Gorm 中的样子。让我们假设您的遗留表被调用features并且它有列name和description。所以你的结构将是:type Feature struct {    Name        string `gorm:"column:name"`    Description string `gorm:"column:description"`}或者,如果此表除了 ORM 之外还用于 REST API:type Feature struct {    Name        string `json:"name" gorm:"column:name"`    Description string `json:"description" gorm:"column:description"`}

红糖糍粑

您可以通过将 autoUpdateTime 标记设置为 false 来禁用时间戳跟踪,例如:Source  CreatedAt time.Time `gorm:"autoCreateTime:false"`  UpdatedAt time.Time `gorm:"autoUpdateTime:false"` 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go