登录
首页 >  Golang >  Go问答

我可以使用 preload 在 gorm 中加载三个表吗?

来源:stackoverflow

时间:2024-04-05 11:51:34 142浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《我可以使用 preload 在 gorm 中加载三个表吗?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我有下面三个表:

type struct Product {
      Id  int 
      Name string
}
type struct Order {
      Id int
      Name string
      Status int //0-not use 1 - use
      UserId int    'foreginKey:UserId'
      ProductId int 'foreignKey:ProductId, reference:Id'
}
type struct User {
      Id int       
      Name int
}

我可以预加载以加载 1 个用户的所有产品 - 使用预加载意味着状态为 1(因为没有从设备到用户的外来密钥)?


正确答案


是的,您可以参考文档 https://gorm.io/docs/preload.html

db.preload("orders").preload("profile").preload("role").find(&users)
// select * from users;
// select * from orders where user_id in (1,2,3,4); // has many
// select * from profiles where user_id in (1,2,3,4); // has one
// select * from roles where id in (4,5,6); // belongs to

或预加载全部

db.Preload(clause.Associations).Find(&users)

今天关于《我可以使用 preload 在 gorm 中加载三个表吗?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>