beego关联操作

一对多关联插入操作:只需要在文章表插入类型对象即可。代码如下:

 o := orm.NewOrm()
  article := models.Article{}
  artiType := models.ArticleType{Id:id}
  o.Read(&artiType)
  article.ArticleType = &artiType
  o.Insert(&article)

一对多关联查询: ORM做多表查询的时候默认是惰性查询,即不明确指出来要做多表查询,即便是两个表之间存在关系,ORM也不会给两个表做关联。指定多表查询的函数是RelatedSel()。参数是要关联的表名,可以有多个。代码如下:

count,err = o.QueryTable("Article").RelatedSel("ArticleType").Count()

如果关联表的那个字段没有值,那么数据查不到

- 多对多关联插入操作

o := orm.NewOrm()
//1.获取操作对象
arti:= Article{Id: 1}
//获取article的多对多操作对象
m2m := o.QueryM2M(&arti, "users")//第一个参数对象必须有主键,第二个参数是字段名
//获取要插入的对象
user := &User{Id:1}
o.Read(&user)
//多对多对象插入
num, err := m2m.Add(user)//参数可以为对象,指针,对象数组,指针数组

多对多关联查询查询:
一种:直接用read查询,然后加上LoadRelated ()函数来关联两张表。代码如下:

post := Post{Id: 1}
err := o.Read(&post)
num, err := o.LoadRelated(&post, "Tags")

优点是简单,快捷。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值