这就是db.Model和db.Table query在go-gorm上的区别。我发现的一个不同之处在于,使用db.Table().Updates()时,不会自行更新updated_at字段,而使用db.Model时,它会更新字段。
我不知道是bug还是预期的方式,还有其他的区别吗?
发布于 2021-05-17 19:28:44
db.Model是做事情的普通方法。它允许您告诉gorm该操作与哪个模型结构相关。它并不总是需要的,例如,使用正确的结构类型的简单查找将自动推断模型。
db.Table允许您与可能没有模型结构的表进行交互,或者覆盖给定操作的表。它的级别较低,也不太方便,因为它需要代码知道表名,而在普通ORM代码中,您希望从模型名自动派生表名。
如果您看到Table().Updates()没有设置updated_at列,那么您可能希望确保您正在运行最新版本的gorm。另外,您是使用模型结构实例调用更新,还是使用映射调用更新?(对于地图,不太可能设置updated_at )。
https://stackoverflow.com/questions/67550966
复制相似问题