用pq.Array进行查询

  • 本文关键字:查询 Array pq grails-orm
  • 更新时间 :
  • 英文 :


带有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)

最新更新