Gorm many2many关系中如何使用预加载查询

news/2024/10/21 10:53:28/

Gorm many2many关系中如何使用预加载查询

gorm中,若两个实体A、B之间关系为m:n。如果查询A时候需要Preload(B),那么db查询之前需要设置
db.SetupJoinTable()。

例子:
Person : Address = m : n。

type Person struct {ID        int              //1Name      string           //小猫猫Addresses []Address `gorm:"many2many:person_addresses;"`
}type Address struct {ID   uint                 //1        2Name string               //猫窝      狗窝
}type PersonAddress struct {   PersonID  int           //1                                1AddressID int           //1                                2CreatedAt time.Time     //2023-06-21 13:44:00             2023-06-21 13:44:00DeletedAt gorm.DeletedAt //null                           2023-06-21 13:44:00
}func PageList() {//伪代码db := *gorm.DBvar persons []Persondb =  db.Model(&Persion)// 设置中间表               Persion表的Address,  中间表PersionAddresserr := db.SetupJoinTable(&Person{}, "Addresses", &PersonAddress{})db.Limit(10).Offset(0).Find(&persons)// 如果没有设置中间表,PersonAddress中软删除的记录也会被查询出来。// 例子:注释掉这句 err := db.SetupJoinTable(&Person{}, "Addresses", &PersonAddress{}),查询出来小猫猫有猫窝、狗窝。// 如果不注释,查询出来的小猫猫只有猫窝
}

http://www.ppmy.cn/news/499644.html

相关文章

深度学习实例分割篇——Mask RCNN原理详解篇

🍊作者简介:秃头小苏,致力于用最通俗的语言描述问题 🍊专栏推荐:深度学习网络原理与实战 🍊近期目标:写好专栏的每一篇文章 🍊支持小苏:点赞👍🏼、…

电脑推荐-暂时就写这么多

注: 游戏本不是意味专门用于打游戏, 而是说电脑的配置很好, 性能强劲, 自然玩游戏不在话下, 同时得益于其强大的配置, 也能流畅运行各领域的专业软件, 如CAD, 3dsMax 等, 完全可以做为主要生产力工具. 而轻薄本(全能本)的主要特点是便携, 不像游戏本那样很重, 所以会牺牲掉一些…

计算机网络技术自谋职业,过去认知或许都是错的 主编告诉你游戏PC该怎么选

每一年随着CPU、GPU的升级,各家厂商就会对旗下的游戏型PC进行更新,而在选购上的建议则是崇尚买新不买旧,毕竟新品在性能上肯定比老品来的强,而且大家选购游戏型PC的核心要素是获得良好的游戏体验,性能越高自然更容易满…

计算机硬件性能以及配置,硬件配置和性能表现

二、硬件配置和性能表现 配置概览: 首先我们先简要介绍一下这台笔记本的主要配置,惠普光影精灵4代搭载了第八代英特尔酷睿™i7-8750H处理器、NVIDIA GeForce GTX 1050 Ti显卡(最高可选NVIDIA GeForce GTX 1060 MAX-Q GDDR5显卡),这次我们测试…

简要介绍 | 图像聚类:概念、原理与方法

注1:本文系“简要介绍”系列之一,仅从概念上对图像聚类进行非常简要的介绍,不适合用于深入和详细的了解。 图像聚类:概念、原理与方法 Cluster Analysis | NVIDIA Developer 1. 背景介绍 图像聚类(Image Clustering&a…

想去除List重复元素?我有两种方法搞定,赶紧拿去用

关注“Java架构栈”微信公众号,回复暗号【Java面试题】即可获取大厂面试题 问题背景 最近就有很多小伙伴在后台私信波哥,问波哥这样一个问题:“波哥,我最近正在找工作,被面试官问到List该怎么去重?我感觉自…

Java关于反射的理解

关于反射的理解 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 框架 反射 注解 设计模式。 3.体会反射机制的“动态性” //体会…

纯RAW数据转换为DNG格式

手上有一个没有任何header信息的RAW文件,是从相机传感器直接输出的,格式是一个一维的数组,大小是1,310,720,也就是1024*1280. 想使用rawpy来模拟ISP的处理流程,但是很不幸的是,rawpy不支持直接处理这种没有…