首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gorm未加载pq.Int64Array

Gorm未加载pq.Int64Array
EN

Stack Overflow用户
提问于 2020-08-14 17:35:20
回答 1查看 324关注 0票数 3

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

简化模型:

代码语言:javascript
复制
type Event struct {
    ExcludeDates pq.Int64Array // Array of StartTimes of single dates that have been deleted
}

进行表扫描的代码:

代码语言:javascript
复制
    events, _ := gormdb.Model(&Event{}).Rows()
    defer events.Close()
    for events.Next() {
        var event Event
        gormdb.ScanRows(events, &event)
    }

ExcludeDates字段始终为空。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-21 17:25:37

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

您可以在每个字段的基础上重写GORM的列命名方案,但如果需要覆盖所有列名,这可能会很痛苦。作为将来的参考,因为它似乎没有文档化,所以您可以通过重新定义gorm.TheNamingStrategy.Column函数来更改GORM对列名的命名方案。默认情况下,GORM将struct字段名转换为数据库列名的蛇形大小写。此示例反而导致GORM将字段名转换为简单的小写数据库列名:

代码语言:javascript
复制
    gorm.TheNamingStrategy.Column = func(in string) string {
        return strings.ToLower(in)
    }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63417556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档