Order 结构体中,UserID 是一个外键,它指向 User 表的主键。因此,即使 orders 表中的 UserID 不是主键,上述 preload 语句仍然可以成功执行,因为它会自动识别外键关系并进行预加载。

GORM 通过以下方式识别外键关系:

  1. 结构体字段名称:UserID 字段名称包含 User,暗示了与 User 表的关系。
  2. 字段类型:UserID 的类型为 uint,与 User 表主键类型一致。

因此,即使 orders 表的 UserID 不是主键,GORM 仍然能够根据字段名称和类型推断出外键关系,并进行预加载操作。

GORM Preload: 外键关系与预加载 - 订单和用户示例

原文地址: https://www.cveoy.top/t/topic/lRjy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录