在 Golang 的 GORM 中,可以使用Related 方法来利用从其他查询结果中获取的数据。Related 方法用于指定要加载的关联模型,并将其附加到原始查询结果上。

下面是一个示例代码,演示如何在 GORM 中使用从其他查询结果中获取的数据:

package main

import (
	"fmt"
	"gorm.io/driver/sqlite"
	"gorm.io/gorm"
)

type User struct {
	ID   uint
	Name string
}

type Order struct {
	ID     uint
	UserID uint
	User   User
}

func main() {
	db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
	if err != nil {
		panic("failed to connect database")
	}

	// 创建表格
	err = db.AutoMigrate(&User{}, &Order{})
	if err != nil {
		panic("failed to migrate tables")
	}

	// 创建用户
	user := User{Name: "John Doe"}
	db.Create(&user)

	// 创建订单
	order := Order{UserID: user.ID}
	db.Create(&order)

	// 查询订单,并加载关联的用户
	var result Order
	db.First(&result, order.ID)
	db.Model(&result).Association("User").Find(&result.User)

	fmt.Println(result)
	fmt.Println(result.User)
}

在上面的示例中,我们首先定义了UserOrder 两个模型,其中 Order 模型关联了 User 模型。然后我们创建了一个用户和一个订单,并将订单关联到用户上。

接下来,我们使用First 方法查询订单,并使用Association 方法加载关联的用户。最后,我们打印订单和用户的信息。

Golang GORM 查询:如何利用其他查询结果获取关联数据

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

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