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

数据库创建表:

成员(member)
  • id
  • first_name

  • 故乡
  • id
  • 城市
  • member_refer

  • 但是,检索数据时,所有映射回的内容是:
    {
        "id": "dc2bb591-506f-40a5-a141-bdc0c8410ba1",
        "name": "Kevin Krishna",
        "hometown": {
            "id": "",
            "city": "",
            "province": ""
        }
    }
    

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

    谢谢

    最佳答案

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

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

    10-06 13:16
    查看更多