我最近在发出一个简单的 datastore.GetAll() 请求时遇到一个我以前从未见过的错误。我无法弄清楚这意味着什么,我找不到任何包含错误消息的文档或从谷歌搜索错误消息的任何帮助。这是我的代码:type MyUnderlyingStruct struct { ApplyTo *datastore.Key ApplyFrom *datastore.Key Amount float64 LocationKey *datastore.Key DepartmentKey *datastore.Key SubjectAreaKey *datastore.Key}type MyStruct []MyUnderlyingStruct //In the case where I get the error someKey is a valid, complete Key value// of a different kind that what we are querying for and there is actually// an entity in my datastore that matches this queryfunc (x *MyStruct) Load(w http.ResponseWriter, r *http.Request, someKey *datastore.Key) (error) { c := appengine.NewContext(r) q := datastore.NewQuery("MyUnderlyingStruct_KindName").Order("-Amount") if someKey != nil { q = q.Filter("ApplyTo=", someKey) } keys, err := q.GetAll(c,x) if _, ok := err.(*datastore.ErrFieldMismatch); ok { err = nil } if err != nil && err != datastore.Done {return err} return nil}返回此错误:API error 1 (datastore_v3: BAD_REQUEST): The kind is the empty string.谁能告诉我为什么我会收到这个错误,或者它想告诉我什么?
1 回答
aluckdog
TA贡献1847条经验 获得超7个赞
乍一看您的问题(因为我不熟悉 Google 的数据存储 API),在我看来,问题是使用new
关键字进行零内存初始化的结果。
当使用关键字创建结构体而不为字段分配起始值时,默认值为 0。当映射到字符串时,它是“”(空)。Go 实际上为你抛出了一个非常有用的错误。
正如您所指出的,您已经使用了Mykey := new(datastore.Key)
. 感谢您的慷慨解囊,这可以作为未来用户的答案。
- 1 回答
- 0 关注
- 169 浏览
添加回答
举报
0/150
提交
取消