golang使用gorm时出现这样的错误:
panic: reflect.Value.Addr of unaddressable value [recovered]
panic: reflect.Value.Addr of unaddressable value [recovered]
panic: reflect.Value.Addr of unaddressable value
出现错误时的代码:
var groupInfo db.Group
groupInfo.CreateTime =time.Now().Unix()
fmt.Println("InsertIntoGroup: ", utils.StructToJsonString(groupInfo))
err = dbConn.Table("groups").Create(groupInfo).Errorif err !=nil {
fmt.Println("createErr: ", err)
return err
}
出现这样的错误时由于gorm反射时,由于有些字段的数值时空字符串或者整型的变量为0导致的。
解决办法:在Create方法中的groupInfo变量前面加入取址符号&
var groupInfo db.Group
groupInfo.CreateTime =time.Now().Unix()
fmt.Println("InsertIntoGroup: ", utils.StructToJsonString(groupInfo))
err = dbConn.Table("groups").Create(&groupInfo).Error
if err !=nil {
fmt.Println("createErr: ", err)
return err
}