問題タブ [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.
orm - コレクションとその関係をフェッチする Gorm Golang
私は最近 Golang を使い始め、ORM として GORM を試してみることにしました。ほとんどの場合はうまく機能しますが、ほとんどの ORM では制限がある場合があります。幸いなことに、データベース/SQL と非常によく結びついているため、カスタム クエリを簡単に実行できます。
ゴームでこれを行う他の方法があるかどうか疑問に思っています:私は構造会社を持っています。会社は、電子メール、住所、電話と1対多の関係を持っています。gorm で次のコードを使用して、企業のリストとそれに対応する情報を取得します。gormのプリロード機能を利用しています。
これは完全に正常に機能します。ただし、プリロード機能なしでこれを達成する別の方法があるように感じます。何か案は?
go - GORM を使用して GO で完全な階層をプリロードする方法
複数の構造で構成される階層があります
私のDB作成は次のように定義されています:
すべてが明確で、次のように階層の「サブレベル」を 1 つだけプリロードするのに問題なく動作します。
また
GORM を使用して、ルート要素の 1 つで「First()」メソッドを呼び出して階層全体をプリロードする方法を探しています...関連するすべての「フィールド」を含む「エントリ」をロードしたいのですが、各「フィールド」にすべての「デコレータ」をプリロードする...
これは、いくつかの "Preload()" 関数を使用して実行することはできません:
iDB.Preload("child1").Preload("child2").First(root)
「 」は、child1 と child2 の両方がルートの「葉」である場合に機能することを理解しています。
だから私の質問は次のとおりです: gorm でこれを行うことは可能ですか? はいの場合、完全な階層を再帰的にロードする最良の方法は何ですか?
ありがとう。よろしく
error-handling - gorm で接続障害を検出するにはどうすればよいですか?
gorm ORMを使用して、小さくてシンプルな Web アプリを書いています。
データベースは Web アプリケーションとは関係なく失敗する可能性があるため、Web アプリケーションを再起動せずにデータベースに再接続できるように、このケースに対応するエラーを識別できるようにしたいと考えています。
動機付けの例:
次のコードを検討してください。
その
db.Error != nil
場合、エラーがデータベース接続の問題に起因しているかどうかをプログラムで判断するにはどうすればよいですか?私の読書から、それは接続を表して
gorm.DB
いないgorm.Open
ことを理解しているので、データベース接続が失敗した場合に再接続または呼び出しを再発行することについて心配する必要さえありますか?Go でデータベース障害を処理するための一般的なパターンはありますか?
postgresql - データベース列の値が常に 0 になるのはなぜですか?
go-gorm を使用して PostgreSQL データベースから値を取得しています。関連するコードを以下に示します。
UUID 文字列を に渡すとgetChip
、正しい行が返され、常に である を除いてすべての値が正しいです。ちなみに が である行はありません。c.Pack_ID
0
Pack_ID
0
これは pgAdminIII のスクリーンショットです。これで問題が明らかになることを願っています。
何がうまくいかないのかについてのアイデアはありますか? 私は完全に途方に暮れています、ここで...
orm - Gorm Golang orm アソシエーション
私はGORM ORMで Go を使用しています。私は次の構造体を持っています。関係は単純です。1 つのタウンには複数のプレイスがあり、1 つのプレイスは 1 つのタウンに属します。
今、私はすべての場所を照会し、それらのすべてのフィールドと対応する町の情報を取得したいと考えています。これは私のコードです:
サンプル データベースには次のデータがあります。
私はこれを受け取っています:
[{1 Place1 {0 }} {2 Mares Place2 {0 }}]
しかし、私はこのようなものを受け取ることを期待しています(両方の場所は同じ町に属しています):
[{1 Place1 {1 Town1}} {2 Mares Place2 {1 Town1}}]
どうすればそのようなクエリを実行できますか? Preloads
andを使用してみRelated
ましたが成功しませんでした (おそらく間違った方法です)。期待した結果を得ることができません。
json - Go でインポートされた構造体のタグを設定する
私はgorm ( go o orm ) を使用して、JSON でエンコードされるデータベースからデータを取得しています。Gorm は、主キーと時間追跡用のデフォルトの構造体を提供します。この構造体の DeletedAt 属性は、JSON でエンコードされるべきではありません。
パスワードを出力しない小さな例を書きましたが、DeletedAt 属性は引き続き表示されます。
これは、スクリプトを実行した場合に得られる ourput です。
Alfred Rossi の例を変更して動作を模倣したところ、同じ結果が得られました。
go - GORM を使用して CRUD 操作のエラーをチェックするにはどうすればよいですか?
GORMの公式ドキュメントには、レコードの存在をテストする方法が示されています。
これは、レコード作成のエラーを間接的にテストするために使用できますが、障害が発生した場合に有用な情報は報告されません。
のソース コードdb.Create
を確認したところ、続行する前にエラーをチェックする何らかのスタック フレーム インスペクションがあるようです。つまり、トランザクション エラーは黙って失敗します。
- これはバグですか、それとも何か不足していますか?
- トランザクションの失敗をどのように通知することができますか?
- 有用なデバッグ情報はどこで入手できますか?