我试图为 postgres 数据库创建一个 GORM 模型,其中包含一个自定义类型Scanner,Valuer并将字符串切片与字符串转换,以保存为单个数据库列。如果切片为空或 nil,我希望数据库列也为 nil(而不是空字符串)。
type MultiString []string
func (s *MultiString) Scan(src interface{}) error {
str, ok := src.(string)
if !ok {
return errors.New("failed to scan multistring field - source is not a string")
}
*s = strings.Split(str, ",")
return nil
}
func (s MultiString) Value() (driver.Value, error) {
if s == nil || len(s) == 0 {
return nil, nil
}
return strings.Join(s, ","), nil
}
当我尝试调用AutoMigrate以下结构时出现问题:
type Person struct {
ID int
Name string
Kids *MultiString
}
我多次收到以下错误:
[error] unsupported data type: &[]
拉莫斯之舞
相关分类