type Contact struct {
gorm.Model
PersonID sql.NullInt64
}
type Person struct {
gorm.Model
}我试图在以前的代码中使用戈姆和mysql,但是我有以下问题:
我要:
sql.NullInt64可以轻松地处理空值。gorm.Model,包括字段ID、CreatedAt、UpdatedAt、DeletedAt。Db.Model(&models.Contact{}).AddForeignKey。我的问题是:
Person.ID成为mysql中的"int(10)"。Contact.PersonID变成"bigint(20)"有人能帮我解决这个问题吗?
发布于 2017-03-20 22:21:44
gorm.Model上的“魔力”仅仅是字段的名称,根据gorm文档,在约定的末尾,任何带有这些字段的struct都是这样的
例如:保存具有UpdatedAt字段的记录将其设置为当前时间。
或
删除具有DeletedAt字段的记录,它不会从数据库中删除,而是只将字段DeletedAt的值设置为当前时间,并且在查询时无法找到该记录,请参考软删除。
所以解决这个问题很容易,这是我的案例代码:
package models
import "time"
type Model struct {
ID uint `gorm:"primary_key;type:bigint(20) not null auto_increment"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time `sql:"index"`
}所以,现在我只需要使用它作为基本模型:)
https://stackoverflow.com/questions/41705659
复制相似问题