問題タブ [go-gorm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1429 参照

json - ネストされた JSON をデシリアライズするか、単に Go で転送します

Go を使用して基本的な API を構築し、postgres テーブルの JSON フィールドに JSON を他の (プレーンな) データ型と共に格納しました。私のモデルを使用して、単純にデータベースから行をフェッチし、それを JSON として転送しようとしています。

GORMを使用してデータを構造体に逆シリアル化すると、選択したデータ型に応じてバイト配列または文字列としてレンダリングされる JSON を除いて、ほとんどのマッピングがシームレスに行われます。

モデルは次のとおりです(更新済み):

典型的な JSON は次のようになります (DB から):

したがって、このデータを変更したり、Go 構造体などに逆シリアル化したりするのではなく、単にこのデータを渡したいという考えです。コントローラー/ルートは次のとおりです。

次の JSON で応答します (統計は json.RawMessage として):

または、代わりに (統計を文字列として):

これを単純に渡すために必要なオプションは何ですか?これまでのところ、JSON を構造体にマップしようとして失敗しました (動的データと、最初に JSON を選択した理由により、これは困難になります)。

c.JSONが構造体から JSON にすべてのデータを自動的にマーシャリングすることで、 gin-gonicからいくつかの魔法が起こっていることに気付きましたが、json データのマーシャリングを回避する方法があることを望んでいますか?

ItemInfo サブ構造体で実行すると、次のエラーでパニックになります。

編集:更新されたコード:

0 投票する
2 に答える
7293 参照

go - gorm Many To Many Select で無効な関連付け [] エラーが発生する

これは私のデータベーススキーマです:

ユーザー:

言語:

ユーザー言語:

これは私のコードです:

私はこの結果を期待しています:

しかし、私はinvalid association []コンソールにアクセスしています。ゴームロガーを追加しても、詳細情報は得られませんでした。

言語名の配列のような「言語」オブジェクトしか取得できない場合でも、これは問題ありません。

0 投票する
1 に答える
974 参照

go - ゴームのmany2many、本当に

ゴームで多対多の関係を使用しようとしています。ただし、この例は部分的なスニペットであり、同様のサンプル スニペットを作成しようとすると失敗します。

これは、最後の CreateTable 呼び出しでパニックになります。panic: invalid association []

0 投票する
1 に答える
404 参照

go - Gorm 内の異なるテーブル名との 1 対 1 の関係

次のテーブルがあります。

nyct2010 ここに画像の説明を入力

旅行

ここに画像の説明を入力

私が定義したモデルは以下のとおりです。

から関連エントリを取得しようとしていますnyct2010。に関連していpickup_nyc2010_gidます。

上記のコードは、次のデバッグ メッセージを生成します。

何らかの理由で gorm は、私がマッピングしているフィールドを無視しています。私はそれをにマッピングNyct2010.IdしようとしていNyct2010.gidます。

これは間違っているのでしょうか、それともゴームのエラーですか?

0 投票する
1 に答える
1120 参照

reflection - gorm ライブラリで反映する

golangのデータベース ライブラリとしてgorm パッケージ ( https://github.com/jinzhu/gorm ) を使用しています。「ホテル」や「パッケージ」など、多くのクラス (データベース テーブル) があります。コードを複製することは、良いプログラミング方法ではありません。ばかげた例として、各テーブルから最初のオブジェクトを取得したいとします。オブジェクトごとにこのメソッド ( GetFirstHotel, ...) を書くことができます。GetFirstPackageしかし、より良い方法はGetFirstItem、最初の param を使用してパラメーターと同じクラスのオブジェクトを作成し、それを gorm に渡すメソッドを1 つだけ持つことinterface{}です。そのためにreflectを使用しようとしましたが、おそらくあまり理解していないため失敗しました。

gorm ライブラリの関数を見つけられなかっただけか、reflect パッケージを適切に使用できないのかもしれません。GetFirstItem関数をどのように実装すればよいですか。これを実装することは可能ですか、それともコードを繰り返す必要がありますか?

0 投票する
1 に答える
1409 参照

mysql - GoでリモートのMySqlに接続できません

Go を使用してリモートの MySql サーバーに接続する必要があります。次のコードを使用して、gorm 経由で MySql に接続しています。

Goサーバーを実行すると、次のエラーが発生します

このエラーを修正するにはどうすればよいですか?

0 投票する
2 に答える
21331 参照

go - has-one を使用した Golang Gorm の 1 対多

小さな注文管理アプリのプロトタイプを作成して、Go と Gorm を学ぼうとしています。データベースはMySQLです。単純なクエリでは、Gorm は優れています。ただし、1 対 1 の関係と 1 対 1 の関係の組み合わせを含む結果セットを取得しようとすると、Gorm は不十分なようです。間違いなく、実際に不足しているのは私の理解不足です。私が達成しようとしていることのオンラインの例が見つからないようです。どんな助けでも大歓迎です。

構造体に行く

データベース テーブル

現在のクエリ

結果 (gorm は 2 つの db クエリを作成します)

代替クエリ

結果 (gorm は 3 つの db クエリを作成)

理想的な結果

上記の「代替クエリ」は、理想的なクエリ結果を生成します。ただし、Gorm はそのために 3 つの別個のデータベース クエリを作成します。理想的には、1 つ (または 2 つ) のデータベース クエリで同じ結果が得られます。

これは、MySQL でいくつかの結合を使用して実現できます。Gorm では結合が可能です。しかし、Gorm のリレーショナル マジックの一部を活用したいと考えていました。

本当にありがとう!

0 投票する
1 に答える
4098 参照

go - Golang gorm - 深くネストされたモデルをプリロードする

次の不自然な例があります。

これにより、次の出力が得られます。

Top -> Middle -> Low のみをネストして呼び出すとPreload("Middle.Low")、正常に動作します。手がかりはおそらく二重ポインタ参照[]**main.Lowにありますが、これを適切に行う方法がわかりません。

このレベルでは、ネストされたプリロードがサポートされていない可能性があります。誰でも知っていますか?

0 投票する
1 に答える
1413 参照

mysql - Golang Join 配列インターフェース

一括挿入を作成しようとしています。gormを使用していますgithub.com/jinzhu/gorm

しかし、エラーが発生しました:

エラー 1136: 間違ったクエリを返すため、列数が行 1 の値数と一致しません

手動クエリを使用すると動作します:

以下が生成されます。

問題は、配列インターフェイスを作成して文字列を次のように生成する方法です"XX1", "Jakarta", ...

手伝ってくれてありがとう。