我最近开始使用Golang并决定尝试将GORM作为ORM.它在大多数情况下都能很好地工作,但由于大多数ORM有时它是有限的.幸运的是它与数据库/ sql紧密相关,因此我可以轻松地进行自定义查询.
我想知道是否还有其他方法可以做到这一点:我有一个结构公司,公司有一对多的关系,电子邮件,地址和电话.我在gorm中使用以下代码来提取公司列表及其相应信息.我使用gorm的Preload函数.
db.DBAccess.
Model(&companies).
Count(&dbInfo.Count).
Order("companies.id asc").
Offset(offset).
Limit(length).
Preload("Addresses").
Preload("Phones").
Preload("Emails").
Find(&companies)
Run Code Online (Sandbox Code Playgroud)
这完全没问题.但是我觉得在没有Preload功能的情况下还有另一种方法可以实现这一点.有任何想法吗?
您可以稍后使用DB.Related加载相关实体(仅在需要时/如果需要),如文档中所示:
// User has many emails
db.Model(&user).Related(&emails)
//// SELECT * FROM emails WHERE user_id = 111;
// user_id is the foreign key, 111 is user's primary key's value
// Specify the foreign key
db.Model(&user).Related(&emails, "ProfileId")
//// SELECT * FROM emails WHERE profile_id = 111;
// profile_id is the foreign key, 111 is user's primary key's value
Run Code Online (Sandbox Code Playgroud)
我在文档中没有看到其他方法。
| 归档时间: |
|
| 查看次数: |
4319 次 |
| 最近记录: |