Compte tenu de la structure de données suivante qui a été créé dans la base de données et il y a des données valides dans les lignes dans les tableaux appropriés: -Les associations GORM
type Deployment struct {
gorm.Model
Name string `gorm:"unique_index:idx_name"`
RestAPIUser string
RestAPIPass string
Servers []Server
model *Model
}
type Server struct {
gorm.Model
DeploymentID uint
Hostname string `gorm:"unique_index:idx_hostname"`
RestPort string
Version string
}
Je suis en train de sélectionner tous les Déploiements et ont GORM automatiquement Remplissez les serveurs pour chaque déploiement.
Malheureusement, ce n'est pas le cas. J'ai essayé plusieurs variantes d'utilisation de la fonction Associations() mais je n'arrive pas à l'obtenir. Il me semble avoir à le faire manuellement: -
func (m *Model) GetDeployments() ([]Deployment, error) {
deployments := []Deployment{}
err := m.db.Find(&deployments).Error
if err != nil {
return nil, err
}
deploymentsWithServers := []Deployment{}
for _, d := range deployments {
servers := []Server{}
err := m.db.Model(&d).Association("Servers").Find(&servers).Error
if err != nil {
return nil, err
}
d.Servers = servers
deploymentsWithServers = append(deploymentsWithServers, d)
}
return deploymentsWithServers, nil
}
Quelqu'un at-il des suggestions comment je peux obtenir GORM pour remplir automatiquement le champ Serveurs? Merci!