db.Model 和 db.Table 查询之间的 go-gorm 区别

go-gorm difference between db.Model and db.Table query

db.Modeldb.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)。