为了账号安全,请及时绑定邮箱和手机立即绑定

在 GORM 中禁用 CreatedAt UpdatedAt DeletedAt 字段

在 GORM 中禁用 CreatedAt UpdatedAt DeletedAt 字段

Go
慕哥6287543 2023-02-06 19:06:40
我使用 GORM 并且正在映射遗留表。默认情况下 GORM 有这个结构:type Model struct {        ID        uint      `gorm:"primarykey"`        CreatedAt time.Time        UpdatedAt time.Time        DeletedAt DeletedAt `gorm:"index"`}我在旧表中没有 CreatedAt UpdatedAt DeletedAt 字段,我需要避免或禁用此默认结构。我找不到避免这些专栏的方法。
查看完整描述

3 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

而不是将模型创建为嵌入式结构:


type MyModel struct {

  gorm.Model

  StringField  string

  IntField uint

}

您可以使用您在中提到的声明来创建它gorm.Model:


type MyModel struct {

  ID           uint `gorm:"primarykey"`

  StringField  string

  IntField     uint

}


查看完整回答
反对 回复 2023-02-06
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

您可以避免 fields CreatedAt,UpdatedAt并且不在结构内部DeletedAt指定。gorm.Model


gorm:"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"`

}


查看完整回答
反对 回复 2023-02-06
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

您可以通过将 autoUpdateTime 标记设置为 false 来禁用时间戳跟踪,例如:Source


  CreatedAt time.Time `gorm:"autoCreateTime:false"`

  UpdatedAt time.Time `gorm:"autoUpdateTime:false"` 


查看完整回答
反对 回复 2023-02-06
  • 3 回答
  • 0 关注
  • 721 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号