db.Model 和 db.Table 查询之间的 go-gorm 区别
go-gorm difference between db.Model and db.Table query
db.Model
和 db.Table
查询在 go-gorm 中的区别。
我发现的一个区别是,在使用 db.Table().Updates()
时,不会自行更新 updated_at
字段,而在使用 db.Model
时会更新。
不知道是bug还是本来的样子,还有其他区别吗?
db.Model
是通常的做事方式。它允许您告诉 gorm 此操作与哪个模型结构相关。它并不总是需要的,例如,具有正确结构类型的简单 Find 将自动推断模型。
db.Table
允许您与可能没有模型结构的 table 进行交互,或者为给定操作覆盖 table。它的级别较低且不太方便,因为它需要代码了解 table 名称,而在普通的 ORM 代码中,您希望自动从模型名称中派生该名称。
如果您看到 Table().Updates()
没有设置 updated_at
列,您可能需要确保您是 运行 最新版本的 gorm。另外,您是使用模型结构实例还是地图调用更新? (使用地图不太可能设置 updated_at)。
db.Model
和 db.Table
查询在 go-gorm 中的区别。
我发现的一个区别是,在使用 db.Table().Updates()
时,不会自行更新 updated_at
字段,而在使用 db.Model
时会更新。
不知道是bug还是本来的样子,还有其他区别吗?
db.Model
是通常的做事方式。它允许您告诉 gorm 此操作与哪个模型结构相关。它并不总是需要的,例如,具有正确结构类型的简单 Find 将自动推断模型。
db.Table
允许您与可能没有模型结构的 table 进行交互,或者为给定操作覆盖 table。它的级别较低且不太方便,因为它需要代码了解 table 名称,而在普通的 ORM 代码中,您希望自动从模型名称中派生该名称。
如果您看到 Table().Updates()
没有设置 updated_at
列,您可能需要确保您是 运行 最新版本的 gorm。另外,您是使用模型结构实例还是地图调用更新? (使用地图不太可能设置 updated_at)。