【发布时间】:2021-08-20 16:18:38
【问题描述】:
我有以下型号
type Instance struct {
gorm.Model
Name string `gorm:"index:idx_name_and_group,unique"`
UserID uint
GroupID uint `gorm:"index:idx_name_and_group,unique"`
...
}
type Group struct {
gorm.Model
Name string `gorm:"unique;"`
Instances []Instance
...
}
我正在尝试按名称和组名获取实例。
我可以用下面的代码做到这一点
func (r instanceRepository) FindByName(groupName string, instanceName string) (*model.Instance, error) {
var instance *model.Instance
var group *model.Group
err := r.db.
First(&group, "name = ?", groupName).Error
if err != nil {
return nil, err
}
err = r.db.
Where("name = ? and group_id = ?", instanceName, group.ID).
First(&instance).Error
return instance, err
}
但我想把它变成一个查询。关于如何实现这一目标的任何想法?
【问题讨论】: