使用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字段始终为空。
发布于 2020-08-21 17:25:37
问题是,我使用的是一个由不同ORM生成的表,它的列名与GORM使用的命名方案不相对应,因此数据没有正确地加载到结构中。
您可以在每个字段的基础上重写GORM的列命名方案,但如果需要覆盖所有列名,这可能会很痛苦。作为将来的参考,因为它似乎没有文档化,所以您可以通过重新定义gorm.TheNamingStrategy.Column函数来更改GORM对列名的命名方案。默认情况下,GORM将struct字段名转换为数据库列名的蛇形大小写。此示例反而导致GORM将字段名转换为简单的小写数据库列名:
gorm.TheNamingStrategy.Column = func(in string) string {
return strings.ToLower(in)
}https://stackoverflow.com/questions/63417556
复制相似问题