GORM을 사용하여 Postgres에서 문자열 목록을 JSONB 개체로 저장하려면 일반적인 접근 방식에 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!