1 回答

TA贡献1799条经验 获得超6个赞
使用切片的指针作为自定义方法的输入参数。find
func (repository *BaseRepository) find(result interface{}, pageSize int, page int) error {
if page < 1 {
return errors.ExceedsMinimumInt("page", "", 0, true, nil)
}
if reflect.TypeOf(result).Kind() != reflect.Slice { 👈 check ❗️
return errors.New("`result` is not a slice")
}
offset := (page - 1) * pageSize
db = db.Limit(pageSize).Offset(offset)
if err := db.Find(result).Error; err != nil {
return err
}
return nil
}
用法 👇🏻
var entityList []MyEntity
err := find(&entityList, 10, 1)
此外,您必须检查输入参数(),因为不适合查找单个支柱👇🏻(检索单个对象resultdb.Find)
如果要避免错误记录不发现错误,可以使用“查找类似数据库”。限制(1)。查找(&用户),查找方法同时接受结构和切片数据
例如(表为空):Book
b := Book{}
rowsAffectedQuantity := db.Find(&b).RowsAffected // 👈 0
err = db.Find(&b).Error // 👈 nil
- 1 回答
- 0 关注
- 89 浏览
添加回答
举报