多对多关系返回空值

时间:2018-12-07 03:44:40

标签: go beego

我想使用beego建立多对多关系。这是我的结构:

type User struct {
    Id         int
    UserName   string `orm:"unique"`
    Department string
    Email      string
    Groups     []*Group `orm:"rel(m2m)"` 
}

type Group struct {
    Id        int
    GroupName string `orm:"unique"`
    Introduce string
    Users     []*User `orm:"reverse(many)"`
}

我如何在这些结构之间建立联系。

o := orm.NewOrm()
u1 := User{UserName: "zhangszan"}
u2 := User{UserName: "lisi"}
g1 := Group{GroupName: "g1"}
g2 := Group{GroupName: "g2"}

o.InsertMulti(2, []User{u1, u2})
o.InsertMulti(2, []Group{g1, g2})

m2mu1 := o.QueryM2M(&u1, "Groups")
m2mu2 := o.QueryM2M(&u2, "Groups")

m2mu1.Add(&g1)
m2mu1.Add(&g2)

m2mu2.Add(&g2)
beego.Debug(u1)
beego.Debug(u2)

控制台将打印两个空数组。我认为这两个数组中应该有值。有谁知道如何解决这个问题?谢谢。

 {0 zhangszan   []}
 {0 lisi   []}

环境

  • Beego:1.11.1
  • GoVersion:go1.10
  • GOOS:Windows
  • GOARCH: amd64

0 个答案:

没有答案