golang数据模型之间的关联

13 阅读1分钟
  1. 定义模型关联关系

` package main

import ( "gorm.io/gorm" "gorm.io/driver/mysql" )

// A表 - 主表(一个A对应多个B) type ModelA struct { ID uint gorm:"primaryKey" Name string // 定义关联关系:ModelB.Id BList []ModelB gorm:"foreignKey:Id" }

// B表 - 从表 type ModelB struct { Id uint gorm:"primaryKey" Name string }

`

  1. 查询 ` func GetAWithB(db *gorm.DB) { var aList []ModelA

    // 使用Preload预加载关联数据 result := db.Preload("BList").Find(&aList) if result.Error != nil { // 处理错误 }

    // 现在aList中的每个ModelA都包含其关联的B列表 for _, a := range aList { fmt.Printf("A: %s\n", a.Name) for _, b := range a.BList { fmt.Printf(" - B: %s\n", b.Name) } } } `