GORM无法使用.Find()查询所有记录



我正试图编写一个函数来查询所有符合一组条件的结果,并将它们保存在结构切片中。

// Queries the database for the given set of fields and some string conditions specified as a map
func QueryAllRecords(db *gorm.DB, outputObject interface{}, conditions map[string]interface{}) {
result := db.Where(conditions).Find(&outputObject)
if result.Error != nil {
panic(result.Error)
}
log.Println(Utils.CreateLogMessage("Queried all records", outputObject))
}

根据GORM文件(https://gorm.io/docs/query.html#Retrieving-所有对象(,我可以使用.Find()函数查询所有记录,然后指定将保存查询输出的结构。

这就是我对QueryAllRecords:进行函数调用的地方

var outputObject []Models.Product
conditions := map[string]interface{}{"name": "Sample Product"}
DB.QueryAllRecords(db, outputObject, conditions)
fmt.Println(outputObject)

当我尝试打印outputObject时,我得到一个空的一个空切片[].Find(&outputObject)似乎没有像我希望的那样将结果保存在切片中。我可以在函数本身内成功打印outputObject,但不能在它返回后打印。

使用DB.QueryAllRecords(db, outputObject, conditions)代替

相关内容

  • 没有找到相关文章

最新更新