GORM を使用して文字列のリストを JSONB オブジェクトとして Postgres に保存するには、一般的なアプローチとして GORM のカスタム タイプを利用します。 、postgres.Jsonb。ただし、この依存関係を回避するための代替ソリューションは次のとおりです。
GORM の特定の型に依存する代わりに、GORM が次のように使用する pgx パッケージから pgtype.JSONB を実装することを検討してください。そのドライバー。これをモデルに組み込む方法は次のとおりです:
import ( "github.com/jackc/pgx" "github.com/jackc/pgx/pgtype" ) type User struct { gorm.Model Data pgtype.JSONB `gorm:"type:jsonb;default:'[]';not null"` }
データベースから実際の文字列リストを取得します:
u := User{} db.Find(&u) var data []string err := u.Data.AssignTo(&data) if err != nil { // Handle error }
更新データベース内の文字列のリスト:
u := User{} err := u.Data.Set([]string{"abc", "def"}) if err != nil { // Handle error } db.Updates(&u)
を利用するpgtype.JSONB を使用すると、GORM の postgres.Jsonb 型を使用せずに Go モデル内で JSONB データを操作でき、Postgres で JSONB を操作するためのより直接的かつ柔軟なアプローチが提供されます。
以上がpostgres.Jsonb を使用せずに GORM で JSONB []string データを効率的に管理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。