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)
如果要避免錯誤記錄不發(fā)現錯誤,可以使用“查找類似數據庫”。限制(1)。查找(&用戶),查找方法同時接受結構和切片數據
例如(表為空):Book
b := Book{}
rowsAffectedQuantity := db.Find(&b).RowsAffected // ?? 0
err = db.Find(&b).Error // ?? nil
- 1 回答
- 0 關注
- 80 瀏覽
添加回答
舉報