GORM 从两个表中获取一对一关系的数据

我的Go应用程序上有这两个结构


type Customer struct {

    ID             uint       `json: "id" gorm:"primary_key"`

    Name           string     `json: "name"`

    AddressId      int        `json: "addressId"`

    Address        Address    `json: "address"`

}


type Address struct {

    ID        uint   `json: "id" gorm:"primary_key"`

    ZipCode   string `json: "zipCode"`

    StreetOne string `json: "streetOne"`

    StreetTwo string `json: "streetTwo"`

    City      string `json: "city"`

    State     string `json: "state"`

    Number    string `json: "number"`

}

我在我的前端使用Angular,所以如果我不必提出两个请求来获得客户,那么这将是非常实用的。


我在这里搜索,但找不到一对一关系的示例,有没有办法使此查询不仅获得客户数据,还获得地址?


func (u customer) GetCustomers(params string) ([]models.Customer, error) {

    customers := []models.Customer{}

    u.db.Preload("Addresses").Find(&customers)

    return customers, nil

}


胡子哥哥
浏览 83回答 1
1回答

吃鸡游戏

使用该函数时,可以向其传递要为其加载数据的字段的名称。Preload在你的例子中,它应该看起来像这样(因为你在结构中的字段被命名为):CustomerAddressu.db.Preload("Address").Find(&customers)您可以查看文档以获取更多详细信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go