gpt4 book ai didi

postgresql - 如何保存结构体数组

转载 作者:行者123 更新时间:2023-12-01 22:15:42 27 4
gpt4 key购买 nike

我正在尝试保存结构数组。
我试过了:

type ShiftValue struct {
Hour uint8 `json:"hour"`
Minute uint8 `json:"minute"`
}

type Shift struct {
Start ShiftValue `json:"start"`
End ShiftValue `json:"end"`
}

type Config struct {
ID uuid.UUID `gorm:"type:uuid;primary_key;index;" json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
Shifts []Shift `gorm:"type:varchar(100)[];" json:"shifts,"`
}

但是没有用。我也尝试将Shifts保存为 pq.StringArray:
type Config struct {
ID uuid.UUID `gorm:"type:uuid;primary_key;index;" json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt *time.Time `json:"deleted_at,omitempty"`
Shifts pq.StringArray `gorm:"type:varchar(100)[];" json:"shifts,"`
}

这是一种工作方式,但是我不知道如何将 Shift的一部分转换为 StringArray
我应该使用 GenericArrray吗?
如何进行从 SliceGenericArrayStringArray的转换?

当我对数据进行 Unmarshall编码时,我按以下结构进行操作,我验证了数据,然后将其保存到数据库中:
type ConfigUpdate struct {
Shifts []Shift `json:"shifts,"`
}

最佳答案

可以在gorm embedded struct test中看到的最近场景是

package gorm_test

import "testing"

type BasePost struct {
Id int64
Title string
URL string
}

type Author struct {
ID string
Name string
Email string
}

type HNPost struct {
BasePost
Author `gorm:"embedded_prefix:user_"` // Embedded struct
Upvotes int32
}

type EngadgetPost struct {
BasePost BasePost `gorm:"embedded"`
Author Author `gorm:"embedded;embedded_prefix:author_"` // Embedded struct
ImageUrl string
}


可以看出,所有这些基本结构在父结构中都具有 Id,称为 foreign键。

可以在StackOverflow another answer中处理的另一种情况。
type Children struct {
Lat float64
Lng float64
}

type ChildArray []Children

func (sla *ChildArray) Scan(src interface{}) error {
return json.Unmarshal(src.([]byte), &sla)
}

func (sla ChildArray) Value() (driver.Value, error) {
val, err := json.Marshal(sla)
return string(val), err
}

type Parent struct {
*gorm.Model
Childrens ChildArray `gorm:"column:childrens;type:longtext"`
}

由于我没有设置军队,请自行验证。我只是做了研发部分。希望对我们很多人有帮助。谢谢

关于postgresql - 如何保存结构体数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60420675/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com