我有一个 GORM 查询,我在其中提取了一个整数数组。
func (db *DB) GetAllTracks(ctx context.Context) ([]TrackMatches, error) {
var results []TrackMatches
qry := "select triages.htmltext_structure_hash as htmltext_structure_hash, array_agg(tracks.id) as track_ids from tracks cross join unnest(tracks.triage_ids) as i(item) join triages on triages.triage_id = i.item group by triages.htmltext_structure_hash;"
if err := db.Raw(qry).Scan(&results).Error; err != nil {
return results, err
}
return results, nil
}
type TrackMatches struct {
HtmlTextStructureHash string `json:"htmltext_structure_hash" gorm:"column:htmltext_structure_hash"`
TrackIds pq.Int64Array `json:"track_ids" gorm:"column:track_ids"`
}
当我拨打
Scan
电话时,我收到错误 unsupported data type: &[]
。我该如何解决这个问题?
就我而言,我需要向 pq.Int64Array 列添加一个类型,如下所示:
type TrackMatches struct {
HtmlTextStructureHash string `json:"htmltext_structure_hash" gorm:"column:htmltext_structure_hash"`
TrackIds pq.Int64Array `json:"track_ids" gorm:"column:track_ids;type:int[]"`
}