gpt4 book ai didi

postgresql - pq.Int64Array 没有被 Gorm 加载

转载 作者:行者123 更新时间:2023-12-01 19:38:37 26 4
gpt4 key购买 nike

使用 gorm 对 postgres 表进行表扫描,使用 libpq,它没有加载 pq.Int64Array。

简化模型:

type Event struct {
ExcludeDates pq.Int64Array // Array of StartTimes of single dates that have been deleted
}

执行表扫描的代码:

    events, _ := gormdb.Model(&Event{}).Rows()
defer events.Close()
for events.Next() {
var event Event
gormdb.ScanRows(events, &event)
}

ExcludeDates 字段始终为空。

最佳答案

问题是我使用的是一个由不同 ORM 生成的表,它的列名与 GORM 使用的命名方案不对应,因此数据没有正确加载到结构中。

您可以在每个字段的基础上覆盖 GORM 的列命名方案,但如果您需要覆盖所有列名称,这可能会很痛苦。为了将来引用,因为它似乎没有记录,您可以通过重新定义 gorm.TheNamingStrategy.Column 函数来更改 GORM 用于列名的命名方案。默认情况下,GORM 将结构字段名称转换为数据库列名称的 snake case。此示例反而导致 GORM 将字段名称转换为简单的小写数据库列名称:

    gorm.TheNamingStrategy.Column = func(in string) string {
return strings.ToLower(in)
}

关于postgresql - pq.Int64Array 没有被 Gorm 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63417556/

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