所以,这有效:
house := model.House {};
err = db.First(&house).Error;
但是,这不起作用:
var house model.House;
fetchFromDatabase := reflect.New(reflect.TypeOf(house)).Interface();
err = db.First(&fetchFromDatabase).Error;
... 数据库库提供错误:
不受支持的目的地,应该是切片或结构
对我来说,这应该是一个结构,考虑到" House" type是一个结构。但是,我仍然围着Reflect
缠绕......有人可以帮忙吗?
答案 0 :(得分:4)
库正在抱怨,因为应用程序正在将*interface{}
传递给该方法。值fetchFromDatabase
是指向结构的指针。将此值直接传递给方法:
var house model.House
fetchFromDatabase := reflect.New(reflect.TypeOf(house)).Interface()
err = db.First(fetchFromDatabase).Error