我正在尝试使用 Gorm 为我的 api 构建一个通用的 Crud 存储库结构。我知道泛型在版本2中即将进入GoLang,但我试图使用反射或任何其他库来构建这个lib。
在我的仓库中:
func (repository *BaseRepository) find(result interface{}, pageSize int, page int) error {
if page < 1 {
return errors.ExceedsMinimumInt("page", "", 0, true, nil)
}
offset := (page - 1) * pageSize
ent := reflect.Zero(reflect.TypeOf(result))
repository.db = repository.db.Limit(pageSize).Offset(offset)
err := repository.db.Find(&ent).Error
result = ent
if err != nil {
return err
}
return nil
}
并调用此方法 sth,如下所示:
func List(){
var entityList []MyEntity
find(entityList, 1, 10)
}
我认为,我无法将任何接口引用传递到Gorm.db.Find()方法有没有其他方法可以成功?
哈士奇WWW
相关分类