https://github.com/jinzhu/gorm/blob/master/model.go
type Model struct {
ID uint `gorm:"primary_key"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time `sql:"index"`
}
CreatedAt 和 UpdatedAt 都是非指针,DeletedAt 用了指针,这后面应该怎么理解呢
1
jingniao 2020-01-31 14:46:13 +08:00 via Android 2
指针允许空吧,不是指针的是非空
|
2
tairan2006 2020-01-31 15:34:43 +08:00 via Android 1
1 楼正解,time.Time 的默认值是 0000-00-00
|
3
chotow 2020-01-31 16:52:09 +08:00 via iPhone
举个例子,以 JSON 格式打印一个零值结构体时,非指针的结果是默认值,指针是 null。
这是一个点,还有的就是赋值写入等,可以再摸一下文档。 |
4
snoooow 2020-02-02 17:02:52 +08:00 1
结构体中的零值不会出现在 gorm 构造的查询条件中,但指针例外。然后删除一般是软删除,DeletedAt 字段初始为零值,删除之后会有值。把 DeletedAt 弄成指针,查询的时候就会自然带上 DeletedAt == nil,就能查到未删除的数据,而 CreatedAt 和 UpdatedAt 没有这种需求。
|