使用 ORM 将任意数据检索到嵌套对象中

Retrieving arbitrary data into nested object with ORM

我正在尝试在 go 中开发一个 api,以允许用户指定任意数据结构,并根据该结构轻松设置端点以在自动生成的 postgres 数据库上执行 CRUD 操作他们定义的。

目前,我一直在使用 gorm,并且能够根据用户定义的结构集自动生成一个数据库,该数据库支持所有类型的关系(有一个、一对多等) .当通过端点发送 JSON 时,我还能够插入到生成的数据库中。

我发现的问题是当我尝试接收数据时。似乎许多 go ORM 的不足之处在于将所有表中的数据映射回父结构的嵌套结构。

例如,如果用户定义:

type Member struct {
    ID          string      
    FirstName   string      
    Hometown    Hometown    `gorm:"ForeignKey:MemberRefer"`
}

type Hometown struct {
    ID              string
    City            string
    Province        string
    MemberRefer     string
}

数据库创建表:

成员

家乡

但是,在检索数据时,映射回来的是:

{
    "id": "dc2bb591-506f-40a5-a141-bdc0c8410ba1",
    "name": "Kevin Krishna",
    "hometown": {
        "id": "",
        "city": "",
        "province": ""
    }
}

有人知道支持这种行为的 go orm 吗?

谢谢

5 秒 google 搜索显示了我的答案:

Preloading associations

Now that you actually have them properly related, you can .Preload() get the nested object you want: db.Preload("GoogleAccount").First(&user)

https://www.google.com/search?q=gorm+nested+struct+golang