ホームページ >バックエンド開発 >Golang >PostgreSQL を使用して GORM モデルに整数の配列を保存するにはどうすればよいですか?

PostgreSQL を使用して GORM モデルに整数の配列を保存するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-05 01:20:021006ブラウズ

How to Store Arrays of Integers in a GORM Model Using PostgreSQL?

カスタム データ型を使用して Gorm モデルに整数の配列を追加する

Go プログラミング言語では、GORM は人気のある ORM (オブジェクト リレーショナル マッパー) フレームワークですデータベースを操作するためのものです。 PostgreSQL などのリレーショナル データベースを使用する場合、多くの場合、値のコレクションを配列と呼ばれる 1 つのフィールドに保存する必要があります。

問題: 整数の配列を追加するときにパニックが発生する

整数の配列 []int64 を Gorm モデル フィールドに追加すると、「パニック: postgres の SQL タイプ (スライス) が無効です。」というエラーが発生する可能性があります。このエラーは、Gorm がスライスをデータベース フィールドに自動的にマップできないために発生します。

解決策: 配列にカスタム データ型を使用する

この問題を解決するには、提供されているカスタム データ型を使用する必要があります。基礎となるデータベース ライブラリによって。 PostgreSQL の場合、pq ライブラリは、Gorm モデルの DeckType フィールドのカスタム型 pq.Int64Array として整数配列を表す方法を提供します。

<code class="go">type Game struct {                                           
        gorm.Model                                           
        GameCode    string                                      
        GameName    string                                      
        DeckType    pq.Int64Array `gorm:&quot;type:integer[]&quot;`
        GameEndDate string    
}</code>

gorm タグでは、type:integer [] は、このフィールドがデータベース内で整数の配列として扱われることを指定します。

整数配列を使用した挿入の例

Gorm モデルに整数の配列を挿入するには、次を使用できます。次の構文:

<code class="go">dt := []int64{1, 2, 3}   
                                                                                
db.Create(&amp;Game{GameCode: &quot;xxx&quot;, GameName: &quot;xxx&quot;, DeckType: pq.Int64Array(dt), GameEndDate: &quot;xxx&quot;})  </code>

以上がPostgreSQL を使用して GORM モデルに整数の配列を保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。