如何解决Gorm未加载pq.Int64Array
使用gorm使用libpq对postgres表进行表扫描,它不会加载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将结构字段名称转换为数据库列名称的蛇形。相反,此示例使GORM将字段名称转换为简单的小写数据库列名称:
gorm.TheNamingStrategy.Column = func(in string) string {
return strings.ToLower(in)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。