gorm many2many 使用上的问题

2. 问题描述?

gorm 获取关联数据时,并没有得到预期

  1. gorm 外键,数据库必须存在相应的外键吗?

3. 您期望得到的结果?

Organizations []MOrganization `json:"organizations" gorm:"many2many:org_user;ForeignKey:UserId;joinForeignKey:OrgId;"`
orm.Where("id", "144501629725577216").Preload("Organizations", "status = 1").Find(&loginUser)

下边是 sqllog

2021/11/16 13:48:25 D:/wwwroot/lecent-middle-center/service/user/user.go:172
[1.087ms] [rows:0] SELECT * FROM "org_user" WHERE "org_user"."org_id" = 144501629725577216

2021/11/16 13:48:25 D:/wwwroot/lecent-middle-center/service/user/user.go:172
[2.765ms] [rows:1] SELECT * FROM "user" WHERE "id" = '144501629725577216'
  1. 我确保 organization 数据表中存在数据。
  2. 上面这段代码返回的 organizations 是 nil
  3. sql 打印并没有去 organization 去取数据.

4. 您实际得到的结果?

organization 应该有一条或者多条数据

九九一十八,一步一个脚印
guoliang1994
最佳答案

问题找到了,自问自答一波 :rage:

gorm 设置

many2many:org_user;foreignKey:id;joinForeignKey:user_id;References:id;joinReferences:org_id

各个键的详解

  • org_user 中间表表名
  • foreignKey user 表的主键
  • joinForeignKey 关联 user 表的字段
  • References organization 的主键
  • joinReferences 关联 organization 的字段

按照这个去套,就没问题了

3年前 评论
HJCJ 1年前
guoliang1994 (作者) (楼主) 1年前
讨论数量: 4
guoliang1994

问题找到了,自问自答一波 :rage:

gorm 设置

many2many:org_user;foreignKey:id;joinForeignKey:user_id;References:id;joinReferences:org_id

各个键的详解

  • org_user 中间表表名
  • foreignKey user 表的主键
  • joinForeignKey 关联 user 表的字段
  • References organization 的主键
  • joinReferences 关联 organization 的字段

按照这个去套,就没问题了

3年前 评论
HJCJ 1年前
guoliang1994 (作者) (楼主) 1年前

必须给你点个赞,困扰我一天得问题

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!