我正在将戈姆与 GO 一起使用。我有一个实体用户type User struct { Id int `json:"id" gorm:"primaryKey;autoIncrement"` Name string `json:"name"` gorm.Model}我的创建记录代码是user := User{}user.Name = "Afzal"DB.Create(&user)现在按照文档应该返回插入的数据的主键user.ID但它返回 0,这是初始化结构用户时的默认值。
1 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
User.Id将具有正确的值,因为您已添加该字段并将其标记为主键。 实际访问 。这也具有 primaryKey 标记,但它被类型上的字段所取代。user.IDuser.Model.IDIdUser
你已经嵌入了类型(根据文档,我想),但这意味着你的类型实际上看起来像这样:gorm.ModelUser
User{
Id int
Name string
gorm.Model{
ID uint `gorm:"primarykey"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt DeletedAt `gorm:"index"`
}
}
因此,当您查看 时,您正在访问嵌入的字段。选中字段(小写),或删除已添加的字段,并依赖嵌入的 .user.IDIDIddIdIDModel
如果你确实想保留自己的领域,我认为把它变成一个是正确的。如果您需要在数据中使用负ID元素,那么您可能做错了什么......我见过负面ID被使用,但每次我看到它发生时,它都是一些绝对可怕的黑客攻击。Idgorm.Modeluint
- 1 回答
- 0 关注
- 116 浏览
添加回答
举报
0/150
提交
取消