如何通过gorm更新数组?

问题描述 投票:0回答:1
type Person struct {
    ID   int64    `gorm:"column:id;primaryKey;autoIncrement:false"`
    Pets []string `gorm:"column:pets;type:ARRAY"`
}

person := Person{ID: 1}
pets := []string{"cat", "dog"}

bqStore.DB.Model(&Person{}).Create(&person)
bqStore.DB.Model(&Person{}).Where("id = ?", 1).Update("pets", pets)

最后一行生成错误:

分析失败:INVALID_ARGUMENT:STRUCT 类型的值无法分配给 ARRAY 类型的宠物 [at 1:28]

有人知道如何让它发挥作用吗?

go go-gorm
1个回答
0
投票
使用

pq.StringArray

 中的 
"github.com/lib/pq"
 作为 
Pets
 字段和 gorm 
text[]
 类型:

type Person struct { ID int64 `gorm:"column:id;primaryKey;autoIncrement:false"` Pets pq.StringArray `gorm:"column:pets;type:text[]"` } pets := pq.StringArray{"cat", "dog"}
    
© www.soinside.com 2019 - 2024. All rights reserved.