猿问

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

我正在尝试开发一个 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

家乡

  • ID

  • 城市

  • member_refer

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

{

    "id": "dc2bb591-506f-40a5-a141-bdc0c8410ba1",

    "name": "Kevin Krishna",

    "hometown": {

        "id": "",

        "city": "",

        "province": ""

    }

}

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


暮色呼如
浏览 109回答 1
1回答

慕莱坞森

5 秒谷歌搜索向我展示了答案:预加载关联现在您实际上已将它们正确关联,您可以 .Preload() 获取所需的嵌套对象:db.Preload("GoogleAccount").First(&user)
随时随地看视频慕课网APP

相关分类

Go
我要回答