ユーザーが任意のデータ構造を指定し、定義した構造に基づいて自動生成されたpostgresデータベースでCRUD操作を実行するエンドポイントを簡単に設定できるように、APIをgoで開発しようとしています。
今のところ、私はgormを使用しており、ユーザー定義の構造体のセットに基づいてデータベースを自動的に生成でき、すべてのタイプの関係(1対1対多など)をサポートします。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": ""
}
}
このような行動をサポートする囲碁組織を知っている人はいますか?
ありがとう
5秒のGoogle検索で答えがわかりました:
関連付けのプリロード
実際にそれらを適切に関連付けたので、.Preload()を使用して、必要なネストされたオブジェクトを取得できます:db.Preload( "GoogleAccount")。First(&user)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加