我正在尝试开发一个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": ""
}
}
有人知道支持这种行为的goor吗?
谢谢
答案 0 :(得分:2)
5秒的Google搜索向我显示了答案:
预加载关联
现在您实际上已经正确地关联了它们,则可以.Preload()获得所需的嵌套对象: db.Preload(“ GoogleAccount”)。First(&user)