假设有两个对象:User 和 Order,其中 Order 对象中有一个外键 user_id 与 User 对象关联。如果想查询某个用户的所有订单列表,可以使用 GORM 的预加载功能。
示例代码如下:
type User struct {
ID uint
Name string
Orders []Order
}
type Order struct {
ID uint
UserID uint // 外键
Product string
}
// 查询某个用户及其所有订单
var user User
db.Preload("Orders").First(&user, 1)
// 打印用户信息和订单列表
fmt.Println(user.Name)
for _, order := range user.Orders {
fmt.Println(order.Product)
}
上述代码中,通过 Preload() 方法预加载了 Orders 属性,即同时查询了该用户及其所有关联的订单。最终打印出用户信息和订单列表。




