douci6541 2015-06-11 21:54
浏览 45
已采纳

为什么在Go AppEngine aetest中使用datastore.PropertyList使用datastore.Put获得“无效实体类型”?

This test fails with partnermerge_test.go:22: datastore: invalid entity type

package bigdipper

import (
    "testing"

    "appengine/aetest"
    "appengine/datastore"
)

func TestCreateMigrationProposal(t *testing.T) {
    c, err := aetest.NewContext(nil)
    if err != nil {
            t.Fatal(err)
    }
    defer c.Close()
    if _, err := datastore.Put(
            c,
            datastore.NewKey(c, "ORDER", "order-id-1", 0, nil),
            datastore.PropertyList{}); err != nil {
            t.Fatal(err)
    }
}
  • 写回答

1条回答 默认 最新

  • dtrt2368 2015-06-11 21:54
    关注

    The docs for the datastore.Put function say:

    Put saves the entity src into the datastore with key k. src must be a struct pointer or implement PropertyLoadSaver; if a struct pointer then any unexported fields of that struct will be skipped. If k is an incomplete key, the returned key will be a unique key generated by the datastore.

    This was somewhat confusing when trying to use this with a PropertyList as the src. A PropertyList does not implement PropertyLoadSaver, but a *PropertyList does. Adding an & before PropertyList to get a pointer to it fixes this test.

    package bigdipper
    
    import (
        "testing"
    
        "appengine/aetest"
        "appengine/datastore"
    )
    
    func TestCreateMigrationProposal(t *testing.T) {
        c, err := aetest.NewContext(nil)
        if err != nil {
                t.Fatal(err)
        }
        defer c.Close()
        if _, err := datastore.Put(
                c,
                datastore.NewKey(c, "ORDER", "order-id-1", 0, nil),
                &datastore.PropertyList{}); err != nil {
                t.Fatal(err)
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测