带有IN条件的Gorm查询不能使用pq。数组
这些是我的模型:
Task struct {
Name string
Status TaskStatus
Details string
Deadline time.Time
Files pq.StringArray `gorm:"type:text[]"`
gorm.Model
}
File struct {
ID uuid.UUID `gorm:"primarykey"`
Name string
Ext string
Data []byte
}
当我像这样搜索文件时:
db.Where("id IN ?", task.Files).Find(&files)
正在将此查询转换为SELECT * FROM files WHERE id IN '{"cb71f854-71fc-4849-9783-71cf8f8e4214"}'
,然后它不工作。有什么解决办法吗?
Gorm期望的是字符串切片,而不是pq.StringArray
将查询转换为:
也是一个更有效的SQL查询:db.Where(&File{Task: task}).Find(&files)