使用 Golang 和 Gorm 获取完整的对象,包括儿童

我正在使用Gorm和Golang从我的数据库中获取数据。有没有可能让 Gorm 也获取对象子项(外键)?


数据库表


users

+----+---------+------------+

| id | name    | country_id |

+----+---------+------------+

|  1 | Adam    |          1 |

|  2 | Bertil  |          1 |

|  3 | Charlie |          2 |

+----+---------+------------+


countries

+----+--------+

| id | name   |

+----+--------+

|  1 | Sweden |

|  2 | Norway |

+----+--------+

模型


type User struct {

    Id        int64   `json:"-"`

    Name      string  `json:"name"`

    CountryId int64   `json:"-"`

    Country   Country `json:"country"`

}


type Country struct {

    Id   int64  `json:"-"`

    Name string `json:"name"`

}

用于获取所有用户的代码


var users []User

DB.Find(&users) // Question: How should this be modified to automatically fetch the Country?

实际结果


[

    {

        "name": "Adam",

        "country" : {

            "name": "",

        }

    },

    ...

]

期望的结果


[

    {

        "name": "Adam",

        "country" : {

            "name": "Sweden",

        }

    },

    ...

]

非常感谢您的输入!


/克拉雷


红糖糍粑
浏览 86回答 1
1回答

呼啦一阵风

是的,这是可能的,它被称为预加载。users := make([]User,0) DB.Preload("Country").Find(&users)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go