GORM Preload 和 Joins 联合使用:指定关联表示例
假设我们有两个模型,一个是用户(User),一个是订单(Order)。每个订单都属于一个用户,因此订单模型有一个外键 user_id 与用户模型关联。
我们可以使用 GORM 的 Preload 和 Joins 方法来加载用户和订单数据,并将它们关联起来。以下是一个示例代码:
type User struct {
ID uint
Name string
Email string
}
type Order struct {
ID uint
UserID uint
Amount float64
}
func main() {
db, err := gorm.Open("mysql", "user:password@tcp(localhost:3306)/database_name?charset=utf8mb4&parseTime=True&loc=Local")
if err != nil {
panic(err)
}
defer db.Close()
var orders []Order
db.Preload("User").Find(&orders)
// 或者使用 Joins 方法
// db.Joins("User").Find(&orders)
}
在上面的代码中,我们使用了 Preload 方法来加载订单数据,并将它们关联到用户数据上。我们也可以使用 Joins 方法来达到同样的效果。关键是要确保在模型中定义了正确的关联关系,这样 GORM 才能正确地加载和关联数据。
原文地址: https://www.cveoy.top/t/topic/mQpZ 著作权归作者所有。请勿转载和采集!