postgresql - 如何在 gorm many2many 关联中仅获取 ID 列表
问题描述
我有一个场景,其中两个表之间存在多对多关系,这两个表位于与不同微服务相关的不同数据库中。假设我有表 Post 和 Author。这些表之间存在多对多关系。但是我的 Author 表存储在另一个数据库中。在我的 Post 服务中,我可以获取所有作者的列表。
现在,描述多对多关系(即 post_authors)的表在 Post 服务中。当我使用 db.Find() 获取帖子时,我想要一些东西来获取与帖子关联的作者 ID 列表,使用 gorm 关联。并希望在一个查询中完成,而不是循环浏览帖子。
解决方案
type Post struct {
ID int
Authors []Author `gorm:"many2many: post_authors;"`
}
type Author struct {
ID int
}
您可以尝试以下代码
var posts []Post
db.Where("id in (?)" , []int{1,2,3}).Preload("Authors").Find(&posts)
gorm 将加载带有作者的帖子
推荐阅读
- sql-server - 在 sqlserver 2016 中使用 string_agg 时出错
- php - .htaccess:如果还更改了根路径,则将域重定向到 https 不起作用
- google-calendar-api - 添加会议时是否可以使用日历 API 向其他人发送短信?
- powerbi - 如何根据当前时间修改powerbi中的视图?
- spring - 如何更新 cf vcaps env 中的 postgres uri 值
- c# - C# Winforms 锚定在开始最大化时不起作用
- azure-devops - 作为 VSTS DevOps 构建的一部分,有没有办法验证包是从特定分支构建的?
- django - 如何在 Django 模型中并行运行两种方法?
- sql - 使用其他 ORM 库和实体框架核心进行查询
- rust - 当必须知道序列长度和类型时,在 Serde 中序列化一个序列?