关联关系管理专题测试
考察知识点
- HasOne/BelongsTo 一对一关联
- HasMany 一对多关联
- Many2Many 多对多关联
- Preload 预加载与级联操作
GORM 的 Joins 方法使用 LEFT JOIN 一次性查询关联数据,比 Preload 更高效。
在 GORM 中查询一对多关系时,默认会自动加载关联的子记录。
当预加载一对多关系的数据量很大时,可以使用 Preload 的 Limit 方法限制加载数量。
User hasOne Profile 关系中,外键默认在哪个表中?
在 GORM 中,如何配置多对多关系?
在 GORM 中,如何配置一对多关系?
GORM 中 hasOne 和 belongsTo 的主要区别是什么?
使用 Joins 查询用户及其订单,正确的写法是?
在 GORM 中,如何预加载用户的订单数据?
如何为 Preload 自定义查询条件?
以下关于 GORM 预加载 N+1 问题的描述,哪些是正确的?
以下关于 GORM Preload 条件过滤的描述,哪些是正确的?
以下哪些方法可以处理预加载关联不存在的情况?
以下哪些是 GORM 一对一关系的正确配置方式?
GORM 自动创建的多对多中间表包含哪些字段?
以下关于 GORM 一对多关系外键配置的描述,哪些是正确的?
以下关于 belongsTo 的描述哪些是正确的?
预加载用户的订单以及订单的商品,可以使用 db.Preload("Orders").Preload("____________").Find(&users) 或 db.Preload("Orders.Items").Find(&____________)。
如果需要在多对多关系的中间表中添加额外字段(如创建时间),可以定义____________并使用 gorm:"many2many:中间表名;foreignKey:____________" 配置。
查询用户及其订单数量,可以使用 db.Preload("Orders").____________("users.*, (SELECT count(*) FROM orders WHERE orders.user_id = users.id) as order_count").____________(&users)。